2016-12-07 57 views
0

我創建了驗證,但無法在視圖中顯示它,它對於返回搜索視圖並且不重定向回用戶非常重要。請幫助我,謝謝所有?laravel將驗證錯誤傳遞給自定義視圖

控制器:

public function search(Request $request) 
{ 
    $msg = Validator::make($request->all(), [ 
     'search' => 'required' 
    ]); 
    if ($msg->fails()) { 
     return view('layouts.search')->withErrors($msg->messages()); 
    } else { 
     return "Thank you!"; 
    } 
} 

查看:

@if($errors->any()) 
    <ul class="alert alert-danger"> 
     @foreach($errors as $error) 
     <li> {{$error}} </li> 
     @endforeach 
    </ul> 
@else 
+0

請確認那$ m sg-> messages()不是null –

+0

@ParthVora是的不是空的 –

回答

1

您可以使用$error->first('name_of_error_field')顯示錯誤消息。

你可以這樣說:

public function search(Request $request) 
{ 
    $validator = Validator::make($request->all(), [ 
     'search' => 'required' 
    ]); 
    if ($validator->fails()) { 
     return view('layouts.search')->withErrors($validator); // <----- Send the validator here 
    } else { 
     return "Thank you!"; 
    } 
} 

,並考慮:

@if($errors->any()) 
    <ul class="alert alert-danger"> 
     @foreach($errors as $error) 
     <li> {{$error->first('name_of_error_field')}} </li> 
     @endforeach 
    </ul> 
@endif 

查看更多有關Laravel Custom Validators

希望這有助於

+0

不起作用!! –

+0

您應該在'first()'方法內指定字段的名稱。請參閱上面的更新代碼。 –

+0

我現在但是當我有在DD($錯誤)在foreach是空白的!但出於foreach有錯誤... –