2015-07-22 21 views
5

Tworzę CMS, który pozwala użytkownikowi definiować kategorie. Kategorie mogą zawierać dodatkowe kategorie lub strony. Jak utworzyć trasę w Laravel, która będzie obsługiwać potencjalnie nieograniczoną liczbę segmentów URI?Laravel 5.1 Wildcard Route

Próbowałem następujących ....

Route::get('/resources/{section}', ['as' => 'show', 'uses' => '[email protected]']); 

Próbowałem też czyni trasę opcjonalną ...

Route::get('/resources/{section?}', ['as' => 'show', 'uses' => '[email protected]']); 

Pamiętaj, sekcja może być wiele części lub strona .

Odpowiedz

15

Najpierw należy podać wyrażenie regularne, które będzie używane do dopasowywania wartości parametrów. Router Laravel traktuje / jako separator parametrów i musisz zmienić to zachowanie. Można to zrobić tak:

Route::get('/resources/{section}', 
    [ 
    'as' => 'show', 
    'uses' => '[email protected]' 
    ]) 
    ->where(['section' => '.*']); 

ten sposób, co przychodzi po /Resources/ i dopasowuje wyrażenie regularne zostanie przekazany do $ sekcji zmiennej w sterowniku.

+0

Dzięki! To działało świetnie. –