2017-05-05 98 views
0

我試圖做一個複雜的驗證與請求文件Laravel 5.4「複雜的條件驗證」

"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

現在,它與我的最後一次學嘗試,我錯過了這幾行:

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

我認爲,這將有錯誤的自動返回,就像一個請求呢,對不起。