2015-07-22 7 views
5

Я создаю CMS, которая позволяет пользователю определять категории. Категории могут содержать либо дополнительные категории, либо страницы. Как я могу создать маршрут в Laravel, который будет поддерживать потенциально неограниченное количество сегментов URI?Laravel 5.1 Wildcard Route

Я попытался следующие ....

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

Я также попытался сделать маршрут опциональный ...

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

Имейте в виду, раздел может быть несколько разделов или страницы ,

ответ

15

Во-первых, вам необходимо предоставить регулярное выражение, которое будет использоваться для соответствия значениям параметров. Маршрутизатор Laravel обрабатывает / как разделитель параметров, и вы должны изменить это поведение. Вы можете сделать это так:

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

Таким образом, все, что приходит после /ресурсы/ и сопоставляет регулярное выражение будет передано в $ секции переменных в контроллере.

+0

Спасибо! Это отлично поработало. –