RAKIT validation -PHP独立validation库
PHP独立库,用于验证数据。受Illuminate\\ validation的启发。
特征
- API喜欢Laravel validation 。
- 数组validation 。
-
$_FILESvalidation具有多个文件支持。 - 自定义属性别名。
- 自定义validation消息。
- 自定义规则。
要求
- PHP 7.0或更高
- 安装作曲家
快速开始
安装
composer require \"rakit/ validation \"
用法
使用此库验证数据有两种方法。使用make制作validation对象,然后使用validate对其进行验证。或者只是使用validate 。示例:
使用make :
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 \”<pre>\”;
print_r($errors->firstOfAll());
echo \”</pre>\”;
exit;
} else {
// validation passes
echo \”Success!\”;
}
\”>
<?php 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 \" <pre> \" ; print_r ( $ errors -> firstOfAll ()); echo \" </pre> \" ; exit ; } else { // validation passes echo \" Success! \" ; }
或只是validate它:
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 \”<pre>\”;
print_r($errors->firstOfAll());
echo \”</pre>\”;
exit;
} else {
// validation passes
echo \”Success!\”;
}
\”>
<?php 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 \" <pre> \" ; print_r ( $ errors -> firstOfAll ()); echo \" </pre> \" ; exit ; } else { // validation passes echo \" Success! \" ; }
在这种情况下,上面的两个示例将输出相同的结果。
但是使用make您可以在validation运行之前设置诸如自定义无效消息,自定义属性别名等之类的东西。
属性别名
默认情况下,我们将使您的属性转换为更可读的文本。例如,将显示为confirm_password Confirm password 。但是,您可以使用setAlias或setAliases方法将其设置为任何想要的东西。
例子:
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。
而且还有几个消息变量取决于其规则。
以下是注册/设置您的自定义消息的一些方法:
验证器的自定义消息
通过这种方式,每当您使用make或validate进行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 ();
翻译
自定义消息的翻译不同。当您使用自定义消息进行in , not_in , mimes和uploaded_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”不是印尼语语言的一部分。
因此,要解决这个问题,我们可以使用这样的翻译:
validation = $validator->validate($inputs, [
\’nomor\’ => \’in:1,2,3\’
]);
$message = $ validation ->errors()->first(\’nomor\’); // \”Nomor hanya memperbolehkan \’1\’, \’2\’, atau \’3\’\”\”>
// 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 ( \' <li>:message</li> \' ); // [ // \'<li>Email is not valid email</li>\', // \'<li>Password minimum 6 character</li>\', // \'<li>Password must contains capital letters</li>\' // ]
firstOfAll(string $format = \':message\', bool $dotNotation = false)
从所有现有密钥中获取第一条消息。
示例:
$ messages = $ errors -> firstOfAll (); // [ // \'email\' => Email is not valid email\', // \'password\' => \'Password minimum 6 character\', // ] $ messages = $ errors -> firstOfAll ( \' <li>:message</li> \' ); // [ // \'email\' => \'<li>Email is not valid email</li>\', // \'password\' => \'<li>Password minimum 6 character</li>\', // ]
参数$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,…
如果另一个字段等于任何值,则必须存在此规则下的字段,而不是空的。
例如,如果something是1 , \'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_OK或UPLOAD_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/jpeg或image/png。
如果您想在大小和类型validation之间有单独的错误消息,请选择。您可以使用mimes规则来验证文件类型,以及min , max或between最小规则来验证其大小。
对于多个文件上传,PHP将为您提供不良的数组$_FILES结构(这是主题)。因此,我们组成uploaded_file规则,以自动解决您的$_FILES值,以成为组织良好的数组结构。这意味着,您不仅可以mimes min , max ,或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通过,因为我们为enabled并published到1和0默认值,该值有效。然后,我们可以获取有效/默认数据。
电子邮件
此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 \' ]);
之间:最大,最大
此规则下的字段必须具有最小值和最大参数之间的大小。价值大小以相同的方式计算,例如min和max规则。
您还可以使用此规则验证上传文件以验证上传文件的大小。例如:
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下的字段必须具有给定min和max之间的长度。
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
<
