2016-12-07 55 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有错误... –

相关问题