Как сделать для одного роута разные контроллеры, по ролям?

Как для одного роута например \dashboard сделать разные контроллеры в зависимости от юзера и админа?
  • Вопрос задан
  • 691 просмотр
Пригласить эксперта
Ответы на вопрос 4
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
Выводите разные шаблоны, не надо делать лишнюю магию.
Или делайте переадресацию на нужный url с другим кабинетом и другим видом.

или так
https://laravel.com/docs/5.5/views#view-composers
Ответ написан
Комментировать
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Имхо правильный путь - коллбэк функция с редиректом на верный роут, в зависимости от роли.
Ответ написан
Комментировать
neuotq
@neuotq
Прокрастинация
Пиши общий контроллер, который проверяет права(статус пользователя/ или что там у тебя) и передает управление уже соответствующему методу целевого контролера. Есть редиректы на методы контроллера.
Ответ написан
Комментировать
Ginkidayo
@Ginkidayo
обычный человек
Что-то вроде этого, используя "middleware" для определения роли пользователей, используя пакет ниже.

Route::group(['prefix' => 'admin', 'middleware' => ['role:admin']], function() {
    Route::get('/', 'AdminController@welcome');
    Route::get('/manage', ['middleware' => ['permission:manage-admins'], 'uses' => 'AdminController@manageAdmins']);
});


Route::group(['prefix' => 'dashboard ', 'middleware' => ['role:user']], function() {
    Route::get('/', 'UserController@welcome');
});


laratrust.readthedocs.io/en/5.0/usage/middleware.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы