2016-12-07 1 views
0

Ich habe eine Validierung erstellt, kann aber nicht in der Ansicht zeigen, es ist wichtig, Suchansicht zurückzugeben und nicht zurück Benutzer umleiten. hilf mir bitte, danke allen?Laravel Pass Validierungsfehler zur benutzerdefinierten Ansicht

Controller:

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!"; 
    } 
} 

Ausblick:

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

Bitte stellen Sie sicher, das $ m sg-> messages() ist nicht null –

+0

@ParthVora Yep ist nicht Null –

Antwort

1

Sie können $error->first('name_of_error_field') verwenden Fehlermeldungen anzuzeigen.

Sie können es wie folgt tun:

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!"; 
    } 
} 

Und im Blick:

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

Sehen Sie mehr über Laravel Custom Validators

this helps

+0

Funktioniert nicht !! –

+0

Sie sollten den Namen des Feldes innerhalb der 'first()' Methode angeben. Siehe den aktualisierten Code oben. –

+0

ich jetzt aber wenn ich dd ($ fehler) in foreach habe ist leer! aber außerhalb von foreach haben Fehler ... –

Verwandte Themen