我使用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
将失败。
答案 0 :(得分:2)
Validator MessageBag
您可以将邮件添加到name
Validator
,将邮件添加到表单的MessageBag
属性。
if(/*another problem*/) {
$validator->getMessageBag()->add('name', 'Something else does not check out!');
return redirect()->back()->withErrors($validator)->withInput();
}
我建议在检查formvalidation是否失败后执行此逻辑,因为只是将消息添加到MessageBag
不会将验证设置为失败。然后,您可以在完成一个或多个检查后手动返回重定向,以重定向到包含错误和输入的表单。
答案 1 :(得分:0)
尝试此验证
$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);