【发布时间】:2021-07-11 16:55:12
【问题描述】:
我想在 Laravel 5.6 中使用闭包创建自定义验证,如文档中所述: https://laravel.com/docs/5.6/validation#using-closures
这是我的代码:
public function store(Request $request)
{
\Illuminate\Support\Facades\Validator::make($request->all(), [
'trainer' => [
function ($attribute, $value, $fail) {
return $fail($attribute . ' is invalid.');
},
],
]);
if ($validator->fails()) {
dd($validator->messages());
}
dd('NO ERROR??');
}
测试它使用
$this->post('/my_test_route', []);
返回
没有错误??
这是为什么?如果我将代码更改为
public function store(Request $request)
{
Illuminate\Support\Facades\Validator::make($request->all(), [
'trainer' => 'required',
]);
dd('NO ERROR??');
}
我得到了预期:
Illuminate\Support\MessageBag^ {#2408
#messages: array:1 [
"trainer" => array:1 [
0 => "The trainer field is required."
]
]
#format: ":message"
}
我错过了什么?
【问题讨论】:
标签: laravel validation laravel-5