2015-07-22 5 views
5

Ich erstelle ein CMS, mit dem der Benutzer Kategorien definieren kann. Kategorien können entweder zusätzliche Kategorien oder Seiten enthalten. Wie kann ich in Laravel eine Route erstellen, die eine potenziell unbegrenzte Anzahl von URI-Segmenten unterstützt?Laravel 5.1 Wildcard-Route

Ich habe das versucht folgende ....

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

Ich versuchte auch optional die Strecke zu machen ...

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

Denken Sie daran, Abschnitt mehrere Abschnitte oder eine Seite sein könnte .

Antwort

15

Zuerst müssen Sie einen regulären Ausdruck bereitstellen, der zum Vergleichen von Parameterwerten verwendet wird. Laravel-Router behandelt / als Parametertrennzeichen und Sie müssen dieses Verhalten ändern. Sie können es so machen:

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

Auf diese Weise, was auch immer nach /resources/ kommt und entspricht der reguläre Ausdruck wird auf $ Abschnitt Variable in Ihrem Controller übergeben werden.

+0

Danke! Das hat super funktioniert. –