Laravel 5.1 hinzufügen von Query-strings in der url
Ich habe erklärt dieser route:
Route::get('category/{id}{query}{sortOrder}',['as'=>'sorting','uses'=>'CategoryController@searchByField'])->where(['id'=>'[0-9]+','query'=>'price|recent','sortOrder'=>'asc|desc']);
Möchte ich, um dieses in url: http://category/1?field=recent&order=desc
Wie dies zu erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Query-strings sollten nicht definiert werden, in Ihrer route wie der query-string ist nicht Teil der URI.
Zugriff auf die Abfrage-Zeichenfolge, die Sie verwenden sollten, das request-Objekt.
$request->query()
wird return ein array mit allen query-Parameter. Sie können es auch verwenden, als solche, um wieder eine einzelne Abfrage param$request->query('key')
Sie die route wäre dann als solche
Bearbeiten für Kommentare:
Generiert eine URL, die Sie noch verwenden können Sie den URL-generator innerhalb von Laravel, einfach liefern ein array mit den query-Parametern, die Sie wünschen, generiert werden, mit der URL.
Request::query()
<a href={{url('route_url'}}></a>
diese. Ich denke, jetzt kann ich das nicht.category/{id}','CategoryController@index'
und{!! link_to_action('CategoryController@customQuery',null,['id'=>1,'query'=>'price','order'=>'desc]) !!}
geht um die index-Methode, anstatt zu customQuery Methodehttp://localhost/route/recent/desc
wenn Sie andere Parameter in der url, die Sie verwenden können;
Und Ihre url sollte etwa so Aussehen:
http://category/1/recent/asc
. Auch Sie müssen eine ordnungsgemäße.htaccess
Datei inpublic
- Verzeichnis. Ohne.htaccess
Datei, die url sollte so Aussehen wiehttp://category/?q=1/recent/asc
. Aber ich bin mir nicht sicher über$_GET
parameter (?q=
).