validation

其他类别 2025-08-24

RAKIT validation -PHP独立validation库

PHP独立库,用于验证数据。受Illuminate validation的启发。

特征

  • API喜欢Laravel validation 。
  • 数组validation 。
  • $_FILES validation具有多个文件支持。
  • 自定义属性别名。
  • 自定义validation消息。
  • 自定义规则。

要求

  • PHP 7.0或更高
  • 安装作曲家

快速开始

安装

 composer require "rakit/ validation "

用法

使用此库验证数据有两种方法。使用make制作validation对象,然后使用validate对其进行验证。或者只是使用validate 。示例:

使用make

validationValidator; $validator = new Validator; // make it $ validation = $validator->make($_POST + $_FILES, [ 'name' => 'required', 'email' => 'required|email', 'password' => 'required|min:6', 'confirm_password' => 'required|same:password', 'avatar' => 'required|uploaded_file:0,500K,png,jpeg', 'skills' => 'array', 'skills.*.id' => 'required|numeric', 'skills.*.percentage' => 'required|numeric' ]); // then validate $ validation ->validate(); if ($ validation ->fails()) { // handling errors $errors = $ validation ->errors(); echo "
";
    print_r($errors->firstOfAll());
    echo "
"; exit; } else { // validation passes echo "Success!"; } ">
 

require ( ' vendor/autoload.php ' );

use Rakit  validation  Validator ;

$ validator = new Validator ;

// make it
$ validation = $ validator -> make ( $ _POST + $ _FILES , [
    ' name '                  => ' required ' ,
    ' email '                 => ' required|email ' ,
    ' password '              => ' required|min:6 ' ,
    ' confirm_password '      => ' required|same:password ' ,
    ' avatar '                => ' required|uploaded_file:0,500K,png,jpeg ' ,
    ' skills '                => ' array ' ,
    ' skills.*.id '           => ' required|numeric ' ,
    ' skills.*.percentage '   => ' required|numeric '
]);

// then validate
$ validation -> validate ();

if ( $ validation -> fails ()) {
    // handling errors
    $ errors = $ validation -> errors ();
    echo " 
 " ;
    print_r ( $ errors -> firstOfAll ());
    echo " 
"
; exit ; } else { // validation passes echo " Success! " ; }

或只是validate它:

validationValidator; $validator = new Validator; $ validation = $validator->validate($_POST + $_FILES, [ 'name' => 'required', 'email' => 'required|email', 'password' => 'required|min:6', 'confirm_password' => 'required|same:password', 'avatar' => 'required|uploaded_file:0,500K,png,jpeg', 'skills' => 'array', 'skills.*.id' => 'required|numeric', 'skills.*.percentage' => 'required|numeric' ]); if ($ validation ->fails()) { // handling errors $errors = $ validation ->errors(); echo "
";
	print_r($errors->firstOfAll());
	echo "
"; exit; } else { // validation passes echo "Success!"; } ">
 

require ( ' vendor/autoload.php ' );

use Rakit  validation  Validator ;

$ validator = new Validator ;

$ validation = $ validator -> validate ( $ _POST + $ _FILES , [
    ' name '                  => ' required ' ,
    ' email '                 => ' required|email ' ,
    ' password '              => ' required|min:6 ' ,
    ' confirm_password '      => ' required|same:password ' ,
    ' avatar '                => ' required|uploaded_file:0,500K,png,jpeg ' ,
    ' skills '                => ' array ' ,
    ' skills.*.id '           => ' required|numeric ' ,
    ' skills.*.percentage '   => ' required|numeric '
]);

if ( $ validation -> fails ()) {
	// handling errors
	$ errors = $ validation -> errors ();
	echo " 
 " ;
	print_r ( $ errors -> firstOfAll ());
	echo " 
"
; exit ; } else { // validation passes echo " Success! " ; }

在这种情况下,上面的两个示例将输出相同的结果。

但是使用make您可以在validation运行之前设置诸如自定义无效消息,自定义属性别名等之类的东西。

属性别名

默认情况下,我们将使您的属性转换为更可读的文本。例如,将显示为confirm_password Confirm password 。但是,您可以使用setAliassetAliases方法将其设置为任何想要的东西。

例子:

validation->make([ 'province_id' => $_POST['province_id'], 'district_id' => $_POST['district_id'] ], [ 'province_id' => 'required|numeric', 'district_id' => 'required|numeric' ]); // now you can set aliases using this way: $ validation ->setAlias('province_id', 'Province'); $ validation ->setAlias('district_id', 'District'); // or this way: $ validation ->setAliases([ 'province_id' => 'Province', 'district_id' => 'District' ]); // then validate it $ validation ->validate(); ">
 $ validator = new Validator ;

// To set attribute alias, you should use `make` instead `validate`.
$ validation -> make ([
	' province_id ' => $ _POST [ ' province_id ' ],
	' district_id ' => $ _POST [ ' district_id ' ]
], [
	' province_id ' => ' required|numeric ' ,
	' district_id ' => ' required|numeric '
]);

// now you can set aliases using this way:
$ validation -> setAlias ( ' province_id ' , ' Province ' );
$ validation -> setAlias ( ' district_id ' , ' District ' );

// or this way:
$ validation -> setAliases ([
	' province_id ' => ' Province ' ,
	' district_id ' => ' District '
]);

// then validate it
$ validation -> validate ();

现在,如果province_id值为空,则错误消息将为“需要省”。

自定义validation消息

在注册/设置自定义消息之前,以下是您可以在自定义消息中使用的一些变量:

  • :attribute :将替换为属性别名。
  • :value :将替换为属性的弦乐值。对于数组和对象,将替换为JSON。

而且还有几个消息变量取决于其规则。

以下是注册/设置您的自定义消息的一些方法:

验证器的自定义消息

通过这种方式,每当您使用makevalidate进行validation时,都会为其设置自定义消息。它对于本地化很有用。

为此,您可以将自定义消息设置为第一个参数构造函数:

validation belows will use those custom messages $ validation _a = $validator->validate($dataset_a, $rules_for_a); $ validation _b = $validator->validate($dataset_b, $rules_for_b); ">
 $ validator = new Validator ([
	' required ' => ' :attribute harus diisi ' ,
	' email ' => ' :email tidak valid ' ,
	// etc
]);

// then validation belows will use those custom messages
$ validation _a = $ validator -> validate ( $ dataset_a , $ rules_for_a );
$ validation _b = $ validator -> validate ( $ dataset_b , $ rules_for_b );

或使用这样的setMessages方法:

validation belows will use those custom messages $ validation _a = $validator->validate($dataset_a, $rules_for_dataset_a); $ validation _b = $validator->validate($dataset_b, $rules_for_dataset_b); ">
 $ validator = new Validator ;
$ validator -> setMessages ([
	' required ' => ' :attribute harus diisi ' ,
	' email ' => ' :email tidak valid ' ,
	// etc
]);

// now validation belows will use those custom messages
$ validation _a = $ validator -> validate ( $ dataset_a , $ rules_for_dataset_a );
$ validation _b = $ validator -> validate ( $ dataset_b , $ rules_for_dataset_b );

自定义消息validation

有时,您可能需要设置自定义消息以进行特定validation 。为此,您可以将自定义消息设置为$validator->make$validator->validate的第三参数:

validation_a = $validator->validate($dataset_a, $rules_for_dataset_a, [ 'required' => ':attribute harus diisi', 'email' => ':email tidak valid', // etc ]); ">
 $ validator = new Validator ;

$ validation _a = $ validator -> validate ( $ dataset_a , $ rules_for_dataset_a , [
	' required ' => ' :attribute harus diisi ' ,
	' email ' => ' :email tidak valid ' ,
	// etc
]);

或者,您可以使用$ validation ->setMessages这样:

validation_a = $validator->make($dataset_a, $rules_for_dataset_a); $ validation _a->setMessages([ 'required' => ':attribute harus diisi', 'email' => ':email tidak valid', // etc ]); ... $ validation _a->validate();">
 $ validator = new Validator ;

$ validation _a = $ validator -> make ( $ dataset_a , $ rules_for_dataset_a );
$ validation _a -> setMessages ([
	' required ' => ' :attribute harus diisi ' ,
	' email ' => ' :email tidak valid ' ,
	// etc
]);

. . .

$ validation _a -> validate ();

特定属性规则的自定义消息

有时,您可能需要为特定规则属性设置自定义消息。为此,您可以使用:作为消息分离器或使用链接方法。

示例:

validation_a = $validator->make($dataset_a, [ 'age' => 'required|min:18' ]); $ validation _a->setMessages([ 'age:min' => '18+ only', ]); $ validation _a->validate();">
 $ validator = new Validator ;

$ validation _a = $ validator -> make ( $ dataset_a , [
	' age ' => ' required|min:18 '
]);

$ validation _a -> setMessages ([
	' age:min ' => ' 18+ only ' ,
]);

$ validation _a -> validate ();

或使用链接方法:

validation_a = $validator->make($dataset_a, [ 'photo' => [ 'required', $validator('uploaded_file')->fileTypes('jpeg|png')->message('Photo must be jpeg/png image') ] ]); $ validation _a->validate();">
 $ validator = new Validator ;

$ validation _a = $ validator -> make ( $ dataset_a , [
	' photo ' => [
		' required ' ,
		$ validator ( ' uploaded_file ' )-> fileTypes ( ' jpeg|png ' )-> message ( ' Photo must be jpeg/png image ' )
	]
]);

$ validation _a -> validate ();

翻译

自定义消息的翻译不同。当您使用自定义消息进行innot_inmimesuploaded_file时,可能需要翻译。

例如,如果您使用in:1,2,3我们将设置无效消息,例如“属性仅允许'1','2'或'3'” where part'1'1','2'或'3'“”来自“:wasse_values”标签。因此,如果您有自定义的印尼消息“:属性Hanya Memperbolehkan:washe_values”,我们将设置无效的消息,例如“属性Hanya Memperbolehkan'1','2','2'或'3',这是“或“ Word”不是印尼语语言的一部分。

因此,要解决这个问题,我们可以使用这样的翻译:

 // Set translation for words 'and' and 'or'.
$ validator -> setTranslations ([
    ' and ' => ' dan ' ,
    ' or ' => ' atau '
]);

// Set custom message for 'in' rule
$ validator -> setMessage ( ' in ' , " :attribute hanya memperbolehkan :allowed_values " );

// Validate
$ validation = $ validator -> validate ( $ inputs , [
    ' nomor ' => ' in:1,2,3 '
]);

$ message = $ validation -> errors ()-> first ( ' nomor ' ); // "Nomor hanya memperbolehkan '1', '2', atau '3'"

实际上,我们的内置规则仅使用单词“和“和”或“您可能需要翻译”。

处理错误消息

错误消息收集在Rakit validation ErrorBag对象中,您可以使用errors()方法将其获取。

validation = $validator->validate($inputs, $rules); $errors = $ validation ->errors(); // << ErrorBag">
 $ validation = $ validator -> validate ( $ inputs , $ rules );

$ errors = $ validation -> errors (); // << ErrorBag

现在,您可以使用下面的方法检索错误消息:

all(string $format = ':message')

获取所有消息作为平坦的数组。

示例:

 $ messages = $ errors -> all ();
// [
//     'Email is not valid email',
//     'Password minimum 6 character',
//     'Password must contains capital letters'
// ]

$ messages = $ errors -> all ( ' 
  • :message
  • '
    ); // [ // '
  • Email is not valid email
  • ',
    // '
  • Password minimum 6 character
  • ',
    // '
  • Password must contains capital letters
  • '
    // ]

    firstOfAll(string $format = ':message', bool $dotNotation = false)

    从所有现有密钥中获取第一条消息。

    示例:

     $ messages = $ errors -> firstOfAll ();
    // [
    //     'email' => Email is not valid email',
    //     'password' => 'Password minimum 6 character',
    // ]
    
    $ messages = $ errors -> firstOfAll ( ' 
  • :message
  • '
    ); // [ // 'email' => '
  • Email is not valid email
  • ',
    // 'password' => '
  • Password minimum 6 character
  • ',
    // ]

    参数$dotNotation用于数组validation 。如果是false ,它将返回原始数组结构,如果它是true它将返回带有DOT符号键的Flatten数组。

    例如:

     $ messages = $ errors -> firstOfAll ( ' :message ' , false );
    // [
    //     'contacts' => [
    //          1 => [
    //              'email' => 'Email is not valid email',
    //              'phone' => 'Phone is not valid phone number'
    //          ],
    //     ],
    // ]
    
    $ messages = $ errors -> firstOfAll ( ' :message ' , true );
    // [
    //     'contacts.1.email' => 'Email is not valid email',
    //     'contacts.1.phone' => 'Email is not valid phone number',
    // ] 

    first(string $key)

    从给定密钥中获取第一条消息。如果键有任何错误消息,它将返回null ,或者如果键没有错误,则将返回string

    例如:

     if ( $ emailError = $ errors -> first ( ' email ' )) {
        echo $ emailError ;
    }

    toArray()

    获取按密钥分组的所有消息。

    例如:

     $ messages = $ errors -> toArray ();
    // [
    //     'email' => [
    //         'Email is not valid email'
    //     ],
    //     'password' => [
    //         'Password minimum 6 character',
    //         'Password must contains capital letters'
    //     ]
    // ] 

    count()

    获取计数消息。

    has(string $key)

    检查给定的键是否有错误。如果键有错误,则它将返回bool

    得到验证,有效和无效数据

    例如,您有这样的validation :

    validation = $validator->validate([ 'title' => 'Lorem Ipsum', 'body' => 'Lorem ipsum dolor sit amet ...', 'published' => null, 'something' => '-invalid-' ], [ 'title' => 'required', 'body' => 'required', 'published' => 'default:1|required|in:0,1', 'something' => 'required|numeric' ]);">
     $ validation = $ validator -> validate ([
        ' title ' => ' Lorem Ipsum ' ,
        ' body ' => ' Lorem ipsum dolor sit amet ... ' ,
        ' published ' => null ,
        ' something ' => ' -invalid- '
    ], [
        ' title ' => ' required ' ,
        ' body ' => ' required ' ,
        ' published ' => ' default:1|required|in:0,1 ' ,
        ' something ' => ' required|numeric '
    ]);

    您可以使用下面的示例中的方法获取经过验证的数据,有效数据或无效数据:

    validation->getValidatedData(); // [ // 'title' => 'Lorem Ipsum', // 'body' => 'Lorem ipsum dolor sit amet ...', // 'published' => '1' // notice this // 'something' => '-invalid-' // ] $validData = $ validation ->getValidData(); // [ // 'title' => 'Lorem Ipsum', // 'body' => 'Lorem ipsum dolor sit amet ...', // 'published' => '1' // ] $invalidData = $ validation ->getInvalidData(); // [ // 'something' => '-invalid-' // ]">
     $ validatedData = $ validation -> getValidatedData ();
    // [
    //     'title' => 'Lorem Ipsum',
    //     'body' => 'Lorem ipsum dolor sit amet ...',
    //     'published' => '1' // notice this
    //     'something' => '-invalid-'
    // ]
    
    $ validData = $ validation -> getValidData ();
    // [
    //     'title' => 'Lorem Ipsum',
    //     'body' => 'Lorem ipsum dolor sit amet ...',
    //     'published' => '1'
    // ]
    
    $ invalidData = $ validation -> getInvalidData ();
    // [
    //     'something' => '-invalid-'
    // ] 

    可用规则

    单击以显示详细信息。

    必需的

    此validation下的字段必须存在,而不是“空”。

    这里有一些例子:

    价值 有效的
    'something' 真的
    '0' 真的
    0 真的
    [0] 真的
    [null] 真的
    无效的 错误的
    [] 错误的
    '' 错误的

    对于上传文件, $_FILES['key']['error']不得UPLOAD_ERR_NO_FILE

    必需_if :另一_FIELD,value_1,value_2,...

    如果另一个字段等于任何值,则必须存在此规则下的字段,而不是空的。

    例如,如果something1'1''yes''on'的值之一,则需要required_if:something,1,yes,on

    必需_unles :entere_field,value_1,value_2,...

    除非另一个字段等于任何值,否则必须存在validation的字段,而不是空的。

    必需_with :field_1,field_2,...

    validation中的字段必须存在,并且仅在存在任何其他指定字段时才为空。

    必需_WITHOUT :field_1,field_2,...

    validation中的字段必须存在,并且仅在不存在其他指定字段时才空为空。

    必需_WITH_ALL :field_1,field_2,...

    仅在存在所有其他指定字段时,必须存在validation的字段,并且不仅为空。

    必需_without_all :field_1,field_2,...

    validation中的字段必须存在,并且仅在不存在所有其他指定字段时才空为空。

    uploaded_file :min_size,max_size,extension_a,extension_b,...

    此规则将从$_FILES验证数据。此规则下的字段必须以下规则以下规则有效:

    • $_FILES['key']['error']必须是UPLOAD_ERR_OKUPLOAD_ERR_NO_FILE 。对于UPLOAD_ERR_NO_FILE您可以使用required规则进行验证。
    • 如果给出最小的大小,上传的文件大小不得低于最小尺寸。
    • 如果给出最大大小,上传的文件大小不得高于最大大小。
    • 如果给出文件类型,则MIME类型必须是这些给定类型的一种。

    以下是一些示例定义和解释:

    • uploaded_file :上传文件是可选的。当它不是空的时,必须是ERR_UPLOAD_OK
    • required|uploaded_file :需要上传文件,并且必须是ERR_UPLOAD_OK
    • uploaded_file:0,1M :上传的文件大小必须在0-1 MB之间,但是上传的文件是可选的。
    • required|uploaded_file:0,1M,png,jpeg :上传文件大小必须在0-1MB之间,MIME类型必须为image/jpegimage/png

    如果您想在大小和类型validation之间有单独的错误消息,请选择。您可以使用mimes规则来验证文件类型,以及minmaxbetween最小规则来验证其大小。

    对于多个文件上传,PHP将为您提供不良的数组$_FILES结构(这是主题)。因此,我们组成uploaded_file规则,以自动解决您的$_FILES值,以成为组织良好的数组结构。这意味着,您不仅可以mimes minmax ,或between规则来验证多个文件上传。您应该将uploaded_file仅仅为了解决其值,并确保该值是正确的上传文件值。

    例如,如果您有这样的输入文件:

     < input type =" file " name =" photos[] " />
    < input type =" file " name =" photos[] " />
    < input type =" file " name =" photos[] " />

    您可以像这样验证它:

    validation = $validator->validate($_FILES, [ 'photos.*' => 'uploaded_file:0,2M,jpeg,png' ]); // or $ validation = $validator->validate($_FILES, [ 'photos.*' => 'uploaded_file|max:2M|mimes:jpeg,png' ]);">
     $ validation = $ validator -> validate ( $ _FILES , [
        ' photos.* ' => ' uploaded_file:0,2M,jpeg,png '
    ]);
    
    // or
    
    $ validation = $ validator -> validate ( $ _FILES , [
        ' photos.* ' => ' uploaded_file|max:2M|mimes:jpeg,png '
    ]);

    或者,如果您有这样的输入文件:

     < input type =" file " name =" images[profile] " />
    < input type =" file " name =" images[cover] " />

    您可以这样验证它:

    validation = $validator->validate($_FILES, [ 'images.*' => 'uploaded_file|max:2M|mimes:jpeg,png', ]); // or $ validation = $validator->validate($_FILES, [ 'images.profile' => 'uploaded_file|max:2M|mimes:jpeg,png', 'images.cover' => 'uploaded_file|max:5M|mimes:jpeg,png', ]);">
     $ validation = $ validator -> validate ( $ _FILES , [
        ' images.* ' => ' uploaded_file|max:2M|mimes:jpeg,png ' ,
    ]);
    
    // or
    
    $ validation = $ validator -> validate ( $ _FILES , [
        ' images.profile ' => ' uploaded_file|max:2M|mimes:jpeg,png ' ,
        ' images.cover ' => ' uploaded_file|max:5M|mimes:jpeg,png ' ,
    ]);

    现在,当您使用getValidData()getInvalidData()时,您将获得良好的数组结构,就像单个文件上传一样。

    哑剧:Extension_a,Extension_B,...

    validation下的$_FILES项目必须具有与列出的扩展名之一相对应的MIME类型。

    默认/默认值

    这是没有验证任何东西的特殊规则。如果该属性为空或不存在,它只是将默认值设置为属性。

    例如,如果您有这样的validation

    validation = $validator->validate([ 'enabled' => null ], [ 'enabled' => 'default:1|required|in:0,1' 'published' => 'default:0|required|in:0,1' ]); $ validation ->passes(); // true // Get the valid/default data $valid_data = $ validation ->getValidData(); $enabled = $valid_data['enabled']; $published = $valid_data['published'];">
     $ validation = $ validator -> validate ([
        ' enabled ' => null
    ], [
        ' enabled ' => ' default:1|required|in:0,1 '
        'published' => ' default : 0 |required|in: 0 , 1 '
    ]);
    
    $ validation -> passes (); // true
    
    // Get the valid/default data
    $ valid_data = $ validation -> getValidData ();
    
    $ enabled = $ valid_data [ ' enabled ' ];
    $ published = $ valid_data [ ' published ' ];

    validation通过,因为我们为enabledpublished10默认值,该值有效。然后,我们可以获取有效/默认数据。

    电子邮件

    此validation下的字段必须是有效的电子邮件地址。

    大写

    此validation下的字段必须是有效的大写。

    小写

    此validation下的字段必须有效小写。

    JSON

    此validation下的字段必须是有效的JSON字符串。

    阿尔法

    此规则下的字段必须完全是字母字符。

    数字

    此规则下的字段必须是数字。

    alpha_num

    此规则下的字段必须完全是alpha数字字符。

    alpha_dash

    该规则下的字段可能具有α数字字符,破折号和下划线。

    alpha_spaces

    此规则下的字段可能具有alpha字符以及空格。

    :value_1,value_2,...

    此规则下的字段必须包含在给定值列表中。

    该规则使用in_array检查值。默认情况下, in_array禁用严格检查。因此,它没有检查数据类型。如果要启用严格的检查,可以这样调用验证器:

    validation = $validator->validate($data, [ 'enabled' => [ 'required', $validator('in', [true, 1])->strict() ] ]);">
     $ validation = $ validator -> validate ( $ data , [
        ' enabled ' => [
            ' required ' ,
            $ validator ( ' in ' , [ true , 1 ])-> strict ()
        ]
    ]);

    然后,“启用”值应为boolean true ,或int 1

    not_in :value_1,value_2,...

    此规则下的字段不得包含在给定值列表中。

    此规则也使用in_array 。您可以通过调用验证器来启用严格的检查,并在上面in规则中调用strict()之类的示例。

    最小值:数字

    此规则下的字段必须大大或等于给定的数字。

    对于字符串值,大小对应于字符的数量。对于整数或浮点值,大小对应于其数值值。对于数组,大小对应于数组的计数。如果您的值是数字字符串,则可以将numeric规则列为数字值而不是字符数量。

    您还可以使用此规则验证上传文件,以验证上传文件的最小大小。例如:

    validation = $validator->validate([ 'photo' => $_FILES['photo'] ], [ 'photo' => 'required|min:1M' ]);">
     $ validation = $ validator -> validate ([
        ' photo ' => $ _FILES [ ' photo ' ]
    ], [
        ' photo ' => ' required|min:1M '
    ]);
    最大:数字

    此规则下的字段必须比给定数字低或等于给定的数字。价值大小以类似于min规则的方式计算。

    您还可以使用此规则验证上传文件,以验证上传文件的最大大小。例如:

    validation = $validator->validate([ 'photo' => $_FILES['photo'] ], [ 'photo' => 'required|max:2M' ]);">
     $ validation = $ validator -> validate ([
        ' photo ' => $ _FILES [ ' photo ' ]
    ], [
        ' photo ' => ' required|max:2M '
    ]);
    之间:最大,最大

    此规则下的字段必须具有最小值和最大参数之间的大小。价值大小以相同的方式计算,例如minmax规则。

    您还可以使用此规则验证上传文件以验证上传文件的大小。例如:

    validation = $validator->validate([ 'photo' => $_FILES['photo'] ], [ 'photo' => 'required|between:1M,2M' ]);">
     $ validation = $ validator -> validate ([
        ' photo ' => $ _FILES [ ' photo ' ]
    ], [
        ' photo ' => ' required|between:1M,2M '
    ]);
    数字:价值

    validation下的字段必须是数字,并且必须具有确切的value长度。

    digits_between :min,max

    validation下的字段必须具有给定minmax之间的长度。

    URL

    此规则下的字段必须是有效的URL格式。默认情况下,它像any_scheme://...一样,检查通用URL方案格式。但是,您可以根据需要指定URL方案。

    例如:

    validation = $validator->validate($inputs, [ 'random_url' => 'url', // value can be `any_scheme://...` 'https_url' => 'url:http', // value must be started with `https://***` 'http_url' => 'url:http,https', // value must be started with `http://***` or `https://***` 'ftp_url' => 'url:ftp', // value must be started with `ftp://` 'custom_url' => 'url:custom', // value must be started with `custom://` 'mailto_url' => 'url:mailto', // value must conatin valid mailto URL scheme like `mailto:a@mail.com,b@mail.com` 'jdbc_url' => 'url:jdbc', // value must contain valid jdbc URL scheme like `jdbc:mysql://localhost/dbname` ]);">
     $ validation = $ validator -> validate ( $ inputs , [
        ' random_url ' => ' url ' ,          // value can be `any_scheme://...`
        ' https_url ' => ' url:http ' ,      // value must be started with `https://***`
        ' http_url ' => ' url:http,https ' , // value must be started with `http://***` or `https://***`
        ' ftp_url ' => ' url:ftp ' ,         // value must be started with `ftp://`
        ' custom_url ' => ' url:custom ' ,   // value must be started with `custom://`
        ' mailto_url ' => ' url:mailto ' ,   // value must conatin valid mailto URL scheme like `mailto:a@mail.com,b@mail.com`
        ' jdbc_url ' => ' url:jdbc ' ,       // value must contain valid jdbc URL scheme like `jdbc:mysql://localhost/dbname`
    ]);

    对于常见的URL方案和MailTo,我们将FILTER_VALIDATE_URL组合以验证URL格式和preg_match以验证其方案。除JDBC URL外,目前仅检查有效的JDBC方案。

    整数t规则下的字段必须是整数。
    布尔

    该规则下的领域必须是布尔值。接受的输入是true

    <
    下载源码

    通过命令行克隆项目:

    git clone https://github.com/rakit/validation.git