2015-11-16 29 views

Odpowiedz

3

Ciągi zapytania nie powinny być zdefiniowane na trasie, ponieważ ciąg zapytania nie jest częścią identyfikatora URI.

Aby uzyskać dostęp do ciągu zapytania, należy użyć obiektu żądania. $request->query() zwróci tablicę wszystkich parametrów zapytania. Można również użyć go jako takie zwracają pojedynczą PARAM zapytaniu $request->query('key')

class MyController extends Controller 
{ 
    public function getAction(\Illuminate\Http\Request $request) 
    { 
     dd($request->query()); 
    } 
} 

trasa wy będzie wówczas jako taki

Route::get('/category/{id}'); 

Edytuj za komentarze:

do wygenerowania URL możesz nadal używać generatora adresów URL w Laravel, po prostu podaj tablicę parametrów zapytania, które chcesz wygenerować za pomocą adresu URL.

url('route', ['query' => 'recent', 'order' => 'desc']); 
+0

Ok. Jak mogę to nazwać z mojego widoku? –

+0

Twoje opcje polegają na ustawianiu zmiennych w kontrolerze i przekazywaniu ich do widoku w normalny sposób (radziłbym, abyś mógł to sprawdzić, pamiętając, że to dane użytkownika!). Lub możesz użyć elewacji bezpośrednio w widoku 'Request :: query()' – Wader

+0

Chodzi o to, że robiłem '' to. Chyba teraz nie mogę tego zrobić. –

0
Route::get('category/{id}/{query}/{sortOrder}', [ 
    'as' => 'sorting', 
    'uses' => '[email protected]' 
])->where([ 
    'id' => '[0-9]+', 
    'query' => 'price|recent', 
    'sortOrder' => 'asc|desc' 
]); 

Twój adres URL powinien wyglądać tak: http://category/1/recent/asc. Potrzebujesz również odpowiedniego pliku .htaccess w katalogu public. Bez pliku .htaccess adres URL powinien wyglądać jak http://category/?q=1/recent/asc. Ale nie jestem pewien co do parametru $_GET (?q=).

+0

Źle zrozumiałeś moje pytanie. Rozumiem to, co mówisz. Ale chcę to zrobić z ciągami zapytań. –

13

jeśli masz inne parametry w adresie URL można użyć;

request()->fullUrlWithQuery(["sort"=>"desc"]) 
+0

GOLD! Dzięki –