Validation 如何将闭包用作验证器?
是否可以在Laravel中执行以下类似操作:Validation 如何将闭包用作验证器?,validation,laravel,laravel-5,Validation,Laravel,Laravel 5,是否可以在Laravel中执行以下类似操作: public function rules() { return [ 'sid' => function ($input) { // some custom validation logic. } ]; } public function messages() { return [ 'sid' => "Invalid SID!", ]
public function rules()
{
return [
'sid' => function ($input) {
// some custom validation logic.
}
];
}
public function messages()
{
return [
'sid' => "Invalid SID!",
];
}
我想做一些简单的单次使用验证。创建自定义验证是一种过分的做法 这里至少有两种选择
AppServiceProvider
atboot()
方法创建自定义规则:
Validator::extend('sid', function($attribute, $value, $parameters) {
// some custom validation logic in order to return true or false
return $sid == 'foo';
});
然后,应用如下规则:
return [
'sid' => ['foo'],
];
ValidatorServiceProvider
类。使用此线程,一步一步解释:如果您使用的是Laravel 5.6或更高版本,则可以使用 要使$input在闭包范围内可用,可以使用
use
关键字
'sid' => [ function($attribute, $value, $fail) use $input {
// your logic here
//if that fails, so
return $fail($attribute.' is invalid.');
}
]
我有时会使用
规则。