Php 将错误附加到laravel 5中的验证程序
我正在使用Php 将错误附加到laravel 5中的验证程序,php,laravel,validation,laravel-5,laravel-validation,Php,Laravel,Validation,Laravel 5,Laravel Validation,我正在使用验证程序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()-
验证程序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的验证器自己产生的错误,并附加一些其他错误(如果需要)。
因此,例如,如果输入的名称
没有问题,但是我的If
语句发现了错误,那么验证程序将失败。尝试此验证
$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);
验证程序消息包
通过将消息添加到验证程序
MessageBag
,可以将消息添加到表单的name
属性中
if(/*another problem*/) {
$validator->getMessageBag()->add('name', 'Something else does not check out!');
return redirect()->back()->withErrors($validator)->withInput();
}
我建议在检查formvalidation是否失败后执行此逻辑,因为仅将消息添加到MessageBag
不会将验证设置为失败。然后,你可以手动返回重定向后,一个或多个这些检查已经完成,以重定向到窗体的错误和输入。< /P>这不是我需要的,考虑检查一些不可能为Laravel的验证器,这是另一种方式,我想做最懒惰的方式,只是手动检查一些东西,并附加错误,在这种情况下,您应该在验证程序失败/通过(IMO)后检查其他条件。