W dokumentacji Laravela oraz Lumen na próżno szukać sposobu na zastosowanie wildcard dla naszego routingu. Wyobraźmy sobie że chcemy przekazać dowolną ilość parametrów.
Zamiast tworzyć potworki składające się z xx parametrów opcjonalnych możemy sobie pomóc.
Lumen Wildcard
Aby w Lumen utworzyć wildcard musimy utworzyć dość prosty Route:
$app->get('/{any:.*}', function($any){
dd($any);
});
Dzięki temu wpisując adres: http://domain.pl/param1/param2/param3/param4
dostaniemy w odpowiedzi: param1/param2/param3/param4
Zastosowaliśmy tutaj regexp do parametru .*
poprzedzony :
Laravel 5 Wildcard
Sytuacja jest analogiczna do Lumen z jednym wyjątkiem. Nie możemy użyć regexp ponieważ jest to tylko dostępne w Lumen.
Zatem nasz Route będzie wyglądał tak:
Route::get('/{any}', function($any){
dd($any);
})->where('any', '.*');
Tutaj użyliśmy funkcji where()
Wynik adresu będzie taki sam jak w Lumen.
Podsumowanie
W obu przypadkach użyłem funkcji anonimowych jako callback, ale można użyć normalnej składni Controller@method