Validation 使用闭包的Laravel验证
使用Laravel 5.4开发我正在尝试Laravel文档中的示例:Validation 使用闭包的Laravel验证,validation,laravel-5,Validation,Laravel 5,使用Laravel 5.4开发我正在尝试Laravel文档中的示例: $validator = Validator::make($request->all(), [ 'title' => [ 'required', 'max:255', function($attribute, $value, $fail) { if ($value === 'foo') { return $fail($attribute.' is in
$validator = Validator::make($request->all(), [
'title' => [
'required',
'max:255',
function($attribute, $value, $fail) {
if ($value === 'foo') {
return $fail($attribute.' is invalid.');
}
},
],
]))
我得到这个错误:
类闭包的对象无法转换为字符串
为什么?在5.4中,如果您不想要一个闭包,您可以在验证规则之后传递它,如下所示:
$validator = Validator::make($request->all(), [
'title' => ['required', 'max:255'],
]);
$validator->after(function ($validator) {
if ($request->get('field') === 'foo') {
$validator->errors()->add('field', 'Field is invalid.');
}
});
if ($validator->fails()) {
//
}
在Laravel 5.4中,这不起作用。您需要更新到Laravel 5.6,或者至少有的“照明/验证”版本5.6