将错误附加到 laravel 5 中的验证器
attaching an error to validator in laravel 5
我正在使用 Validator Facade
,这是代码
$req = Request::all();
$rules = [
'name'=>'required|min:3|max:20'
];
$validator = Validator::make($req, $rules);
if(/*another problem*/){
// ??
}
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}
我想保留 Laravel 的 Validator
自己造成的错误,并附加一些其他错误(如果需要)。
因此,例如,如果 name
输入没有问题,但我的 if
语句发现错误,则 Validator
将失败。
试试这个验证
$messages = [
'name.required' => 'Please enter name.',
'naem.min' => 'The name must be at least 3 characters.',
'name.max' => 'The name may not be greater than 20 characters.'
];
$validator = Validator::make($data, [
'name'=>'required|min:3|max:20'
], $messages);
验证器消息包
您可以将消息添加到表单的 name
属性,方法是将其添加到 Validator
MessageBag
。
if(/*another problem*/) {
$validator->getMessageBag()->add('name', 'Something else does not check out!');
return redirect()->back()->withErrors($validator)->withInput();
}
我建议您在检查表单验证是否失败后执行此逻辑,因为仅将消息添加到 MessageBag
不会将您的验证设置为失败。然后,您可以在完成一项或多项检查后手动 return 重定向,以重定向到有错误和输入的表单。
我正在使用 Validator Facade
,这是代码
$req = Request::all();
$rules = [
'name'=>'required|min:3|max:20'
];
$validator = Validator::make($req, $rules);
if(/*another problem*/){
// ??
}
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}
我想保留 Laravel 的 Validator
自己造成的错误,并附加一些其他错误(如果需要)。
因此,例如,如果 name
输入没有问题,但我的 if
语句发现错误,则 Validator
将失败。
试试这个验证
$messages = [
'name.required' => 'Please enter name.',
'naem.min' => 'The name must be at least 3 characters.',
'name.max' => 'The name may not be greater than 20 characters.'
];
$validator = Validator::make($data, [
'name'=>'required|min:3|max:20'
], $messages);
验证器消息包
您可以将消息添加到表单的 name
属性,方法是将其添加到 Validator
MessageBag
。
if(/*another problem*/) {
$validator->getMessageBag()->add('name', 'Something else does not check out!');
return redirect()->back()->withErrors($validator)->withInput();
}
我建议您在检查表单验证是否失败后执行此逻辑,因为仅将消息添加到 MessageBag
不会将您的验证设置为失败。然后,您可以在完成一项或多项检查后手动 return 重定向,以重定向到有错误和输入的表单。