2016-12-18 5 views
0

ich die folgende Codezeile in meiner Ansicht Datei in Laravel haben ::Warum bin ich eine Zeichenfolge in Laravel Methode bekommen, wenn ich tatsächlich bin ein Array übergeben

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

Die folgende Route ist Setup in meiner Routen-Datei :

public function showQualityResult($qualityData) { 
     return $qualityData; 
} 

bekomme ich die follo Ab sofort:

Route::get('showQualityResult/{data}', [ 
    'as' => 'showQualityResult', 
    'uses' => '[email protected]' 
]); 

Wenn auf der einen Tag der Folling Controller emthod geklickt wird ausgeführt flügel string aus meiner sicht:

45 

Warum bekomme ich diese Zeichenfolge/Nummer ?? Wenn klar ich ein Array in der Routenmethode wie folgt verwendet bin vorbei:

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

Kann jemand erarbeiten und erklären, das mir bitte, wie ich bin ein bisschen überrascht, wie jetzt mit dem Ergebnis, dass ich erhalte.

+0

Die Art, wie Sie versuchen, Daten zu übergeben, ist falsch, Sie sollten dies innerhalb eines Formulars tun und beim Senden die richtige Route auslösen. Eine weitere Möglichkeit besteht darin, die Daten als HTTP-Argumente zu senden und die Klasse "Request" zu verwenden, um alle Eingaben zu erhalten. so: 'click me'. Als innerhalb Ihrer Methode tun 'Funktion showQualityResult (Request $ Anfrage) {return $ Anfrage-> all()}'. Diese $ request-> all() gibt ein Array aller Parameter aus, die Sie in der URL übergeben haben. – AfikDeri

+0

@AfikDeri das sieht ein bisschen hässlich aus ... gibt es eine andere Option ?? –

+0

Antwort

1

Der zweite Parameter der Methode route() erwartet ein Array von Parametern, die an die Route gesendet werden. Es durchläuft das übergebene Array und ersetzt die Routenparameter durch die im Array angegebenen Werte.

Also, in diesem Fall haben Sie angegeben dort ein Parameter, mit dem Namen data, und es hat den Wert von Session::get('quality-data') (was, ich gehe davon aus ist 45), so dauert es Ihre Route Definition showQualityResult/{data} und schafft die tatsächliche Route von showQualityResult/45.

Verwandte Themen