Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将错误附加到laravel 5中的验证程序_Php_Laravel_Validation_Laravel 5_Laravel Validation - Fatal编程技术网

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)后检查其他条件。