Динамические маршруты на одном уровне в Laravel 5.2 с разными контроллерами

у меня есть ProfileController и CategoryController,

Я хочу показать профили моих пользователей по следующему маршруту:

my.domain.com/firstname.lastname
my.domain.com/firstname2.lastname2
...

Так же, как это делает Facebook. Поэтому я хочу справиться с этим в моем ProfileController так что я закончил с таким маршрутом:

Route::get('/{userSlug}', array('uses' => 'ProfileController@getProfile'));

Это не проблема, и она отлично работает. Но теперь я хочу показать свои категории следующим образом:

my.domain.com/category-1
my.domain.com/category-2
...

Проблема в том, что я бы сделал маршрут так: Route::get('/{categorySlug}', array('uses' => 'CategoryController@getCategory')); но этот маршрут уже используется профилем.

Я знаю, что могу использовать только один контроллер и проверить там, является ли slug userSlug или categorySlug, но я очень хочу отделить логику профиля от логики категории на свои контроллеры.

Какова лучшая практика здесь?

0

Решение

Если ваши пользовательские маршруты будут всегда быть в форме /firstname.lastnameможно попробовать Ограничения регулярных выражений:

Route::get('/{userSlug}', array('uses' => 'ProfileController@getProfile'))
->where('name', '[a-z]+\.[a-z]+');

Затем проследите за этим по маршруту «поймай все». Тем не менее, вам было бы гораздо лучше добавить префикс URL вашей категории (например, /category/category-1) вместо

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]