2016-12-16 4 views
0

aufgerufen habe ich den folgenden Code aus meiner Sicht:Fehler noch vor Controller-Methode hat in Laravel

@if(Session::has('quality-data')) 
     <a href="{{ route('showQualityResult' , compact(Session::get('quality-data'))) }}">Submited Quality Check</a> 
    @endif 

Jetzt, als ich diese Ansicht öffnen im Frontend ich die folgende Fehlermeldung erhalten:

enter image description here

die Methode aufgerufen das ist, wenn auf der einen Tag angeklickt ist die folgende:

public function showQualityResult($qualityData) { 
     return $qualityData; 
     // return view('quality-result' , compact($qualityData)); 
    } 

Nun, obwohl ich nicht auf das a-Tag geklickt habe, bekomme ich immer noch einen Fehler, dass der Parameter für die Funktion nicht übergeben wurde, Warum ??

Allein die Tatsache, dass ich die folgenden Zeilen Code aus meiner Sicht haben:

@if(Session::has('quality-data')) 
      <a href="{{ route('showQualityResult' , compact(Session::get('quality-data'))) }}">Submited Quality Check</a> 
     @endif 

macht meine Anwendung funktioniert nicht :(

+0

gleiche Problem wie Ihre doppelte http://stackoverflow.com/questions/41190379/parameter-not-being-passed-to-controller-method- In-Laravel-Wenn-Verwenden-Route-Meth – lagbox

Antwort

2

Ich denke, Ihre Fehler auf die Verwendung von kompakten zurückzuführen ist .. das nicht mit den erwarteten Daten erforderlich entspricht.

Tat Ihre Route benötigt das data Argument. Compact ein Array erstellen, wo die Schlüssel der Zeichenfolge im Parameter und der Wert zugeordnet ist. Ist Session::get('quality-data') gibt 'Daten' zurück? Und $data existiert? So

, sollten Sie schreiben:

@if(Session::has('quality-data')) 
    <a href="{{ route('showQualityResult' , ['data' => Session::get('quality-data')]) }}">Submited Quality Check</a> 
@endif 

If this works ... so, you will be able to simplify the writing.

Verwandte Themen