laravel - 无法将多个身份验证重定向到不同的页面
laravel - fails to redirect multiple authentication to different pages
我使用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 |
+-------+---------+-------------+
登录控制器
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';
}
}
家庭控制器
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');
我遵循了我上一个问题的答案
将三个不同的用户 types/roles 重定向到不同的页面
我尝试使用 type_id = 1 的用户登录,这意味着该用户是超级管理员,但它总是重定向到 Route::get('/','HomeController@cashier');
以及具有其他角色的用户
问题是每个角色都可以访问属于另一个角色的页面,我应该怎么做才能解决?
你可以做一件我在上一个项目中用过的东西 laravel。
您必须在主控制器的索引方法中编写此代码,以便在加载主页时检查用户类型 ID 并重定向到适当的页面。
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'));
}
希望对您有所帮助。
我使用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 |
+-------+---------+-------------+
登录控制器
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';
}
}
家庭控制器
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');
我遵循了我上一个问题的答案
将三个不同的用户 types/roles 重定向到不同的页面
我尝试使用 type_id = 1 的用户登录,这意味着该用户是超级管理员,但它总是重定向到 Route::get('/','HomeController@cashier');
以及具有其他角色的用户
问题是每个角色都可以访问属于另一个角色的页面,我应该怎么做才能解决?
你可以做一件我在上一个项目中用过的东西 laravel。
您必须在主控制器的索引方法中编写此代码,以便在加载主页时检查用户类型 ID 并重定向到适当的页面。
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'));
}
希望对您有所帮助。