Я использую laravel 5.4, и я хочу перенаправить эти три разных типа пользователей на разные страницы
схема
Types +-------+-------------+ | id | name | +-------+-------------+ | 1 | Super Admin | | 2 | Admin | | 3 | Cashier | +-------+-------------+ Users +-------+---------+-------------+ | id | type_id | name | +-------+---------+-------------+ | 1 | 1 | Super Admin | | 2 | 2 | Admin | | 3 | 3 | Cashier | +-------+---------+-------------+
LoginController
public function redirectTo() { if (Auth::user()->type_id === 1) { return '/superAdmin/home'; } elseif (Auth::user()->type_id === 2) { return '/admin/home'; } elseif (Auth::user()->type_id === 3) { return '/kasir/home'; } }
HomeController
public function superAdmin() { return view('superAdmin.home'); } public function admin() { return view('admin.home'); } public function kasir() { return view('kasir.home'); }
Маршруты
Route::get('/', 'HomeController@kasir'); Route::get('/admin/home', 'HomeController@admin'); Route::get('/superAdmin/home', 'HomeController@superAdmin');
Я последовал за ответом на мой предыдущий вопрос
перенаправление трех разных типов / роли пользователя на разные страницы
Я попытался войти в систему, используя пользователя с type_id = 1, что означает, что пользователь является супер-администратором, но он всегда перенаправляется на Route::get('/','HomeController@cashier');
а также пользователей с другими ролями
и проблема в том, что каждая роль может получить доступ к странице, принадлежит к другой роли, что я должен сделать, чтобы ее исправить?
Вы можете сделать одну вещь, которую я использовал в своем последнем проекте, используя laravel.
Вы должны написать этот код в методе индекса домашнего контроллера, так что при загрузке домашней страницы он будет проверять идентификатор типа пользователя и перенаправлять на соответствующую страницу.
if(Auth::check()) { if(Auth::user()->in_usertype_id == 1) { return view('admin.dashboard'); }elseif(Auth::user()->in_usertype_id == 2) { return view('admin.dashboard1'); else{ return view('admin.dashboard3'); } }else{ return redirect('login')->with('error', Lang::get('message.unauthorize-access')); }
Надеюсь, это поможет вам.