2016-02-26 2 views
1

Как один и тот же URL указывать на разные контроллеры в зависимости от роли пользователя?Тот же URL-адрес для нескольких маршрутов

Например /route1 следует Пойтинг на Admin\[email protected], если пользователь имеет роль администратора, и OtherRole\[email protected], если пользователь имеет OtherRole роль.

Как это можно сделать?

+1

Я думаю, что стандартный способ сделать это - обработать роль в методе контроллера. Таким образом, 'route1Controller @ index' будет проверять, является ли пользователь admin или нет, а затем возвращать разные представления или данные – Jeff

+1

@Jeff: Спасибо, но поскольку я уже писал разные контроллеры (в подпрограммах типа' role1/route1' и 'role2/route1 ', следует ли смешивать их в одном контроллере или есть что-нибудь, что я могу использовать как фильтры или что-то в этом роде? – servabat

+0

@servabat Чтобы получить ответы, относящиеся к вашей реализации, вы должны, возможно, опубликовать два действия вашего контроллера, чтобы мы могли видеть разницу в логика между ролями. – Bogdan

ответ

0

Вы можете достичь этого, используя промежуточное программное обеспечение в файле routes.php, создав роли, используя пакет романа bican role в laravel.

+0

Он не позволяет иметь один и тот же URL-адрес, вы можете фильтровать доступ только к маршрутам на основе роли. – servabat

0

Попробуйте это:

Вы можете перенаправить пользователя в одном контроллере. Но от контроллера, согласно типу пользователя, вы можете перенаправить на другую страницу.

Смежные вопросы