Laravel Lumen Rotue wildcard

Łukasz Piotrowski Komentarzy 0

    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

    Inne artykuły

    Top