Php Laravel如何制作自定义验证器?
我需要制作自己的验证器,扩展Php Laravel如何制作自定义验证器?,php,laravel,validation,Php,Laravel,Validation,我需要制作自己的验证器,扩展illighted\Validation\validator 我在这里阅读了一个答案中给出的示例: 但问题是它没有清楚地显示如何使用自定义验证器。它不会显式调用自定义验证器。您能给我一个如何调用自定义验证器的示例吗。我不知道这是否是您想要的,但要设置自定义规则,您必须首先扩展自定义规则 Validator::extend('custom_rule_name',function($attribute, $value, $parameters){ //code
illighted\Validation\validator
我在这里阅读了一个答案中给出的示例:
但问题是它没有清楚地显示如何使用自定义验证器。它不会显式调用自定义验证器。您能给我一个如何调用自定义验证器的示例吗。我不知道这是否是您想要的,但要设置自定义规则,您必须首先扩展自定义规则
Validator::extend('custom_rule_name',function($attribute, $value, $parameters){
//code that would validate
//attribute its the field under validation
//values its the value of the field
//parameters its the value that it will validate againts
});
然后将该规则添加到验证规则中
$rules = array(
'field_1' => 'custom_rule_name:parameter'
);
在Laravel 5.5之后,您可以创建自己的自定义验证规则对象 要创建新规则,只需运行artisan命令:
php artisan make:rule GreaterThanTen
laravel将把新的规则类放在app/Rules
目录中
自定义对象验证规则的示例可能类似于:
namespace-App\Rules;
使用照明\合同\验证\规则;
类GreaterThanTen实现规则
{
//应根据属性值是否有效返回true或false。
公共函数传递($attribute,$value)
{
返回$value>10;
}
//此方法应返回验证失败时应使用的验证错误消息
公共功能消息()
{
返回“属性:必须大于10”;
}
}
定义了自定义规则后,您可以在控制器验证中使用它,如下所示:
公共函数存储(请求$Request)
{
$request->validate([
“年龄”=>[“必需”,新的大于十岁],
]);
}
这种方法比在
AppServiceProvider
Class上创建Closures
的旧方法要好得多。下面是一个用于检查的自定义验证规则示例。我知道这是一个相当古老的答案,但我对Laravel是新手,可以使用澄清:我在CVs中看到的大多数示例都显示了控制器操作的基本用法。如果我使用的是表单请求,那么上面的示例是否可以在rules()
函数中用作return['age'=>'greaterthanten']
?@cautionbug,是的,您可以在表单请求类中使用CV,只需导入新的自定义验证规则类:use App\rules\GreaterThanTen
;['required',new GreaterThanTen]不起作用,请改用[$request,new GreaterThanTen]