Laravel 5.4"复杂的条件验证"

时间:2017-05-05 18:59:40

标签: php laravel validation laravel-5.4

我试图用Request文件进行复杂的验证

"algunTexto"        =>    "required" ,
"archivo_texto"     =>    "required_if:algunTexto,si|file|mimes:doc,docx,pages,txt|max:10000" ,

它无法正常工作,因为该请求返回的错误是文件必须是" doc,docx等。"并且输入必须是文件,因此我决定尝试添加bail

"archivo_texto"     =>    "bail|required_if:algunTexto,si|file|mimes:doc,docx,pages,txt|max:10000" ,

现在" doc,docx"错误不再出现,但输入必须是文件的另一个仍然存在。

我做了一个研究,结果使用了这个:

    $data = $request->all();
    $validator = validator($data,
        [
            'archivo_texto' => 'required_if:algunTexto,si'
        ]
    );
    $res = $validator->sometimes('archivo_texto', 'file|mimes:doc,docx,pages,txt|max:10000', function($data){
       return $data->algunTexto == 'si';
    });

但是现在,即使名为" algunTexto"的单选按钮也是如此。等于" si",我没有上传任何文件" archivo_texto",我没有得到任何错误。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

现在它适用于我最后的尝试,我错过了这些线:

if($validator->fails()){
    return back()->withErrors($validator);
}

我认为它会自动返回错误,就像请求一样,抱歉。