php - laravel 上基于角色的路由问题
问题描述
web.php
我的 laravel 应用程序中有以下 2 条路线。
Route::get('/admins', 'Admin\DashboardController@index')->middleware('role:1');
Route::get('/admins', 'Admin\DashboardController@index')->middleware('role:2');
但是第一条路线无法正常运行,因为它将角色 id 为 1 的用户发送到不同的路线,而不是主页的管理仪表板。
如何将 bote 用户发送到同一条路线?
我的登录控制器中有以下功能
public function redirectTo() {
$role = Auth::user()->role_id;
switch ($role) {
case '1':
case '2':
return '/admins';
break;
case '3':
return '/users/profile';
break;
default:
return '/home';
break;
}
}
解决方案
protected $redirectTo = '/home'; //Default path to redirect
public function redirectTo() {
$role = Auth::user()->role_id;
if($role == 1 || $role == 2){ // Check if admin or reginal admin
$this->redirectTo = '/admins';
}
elseif($role == 3) { // noraml user
$this->redirectTo = '/users/profile';
}
return $this->redirectTo;
}
Remove a route of /admins
from web.php
and Remove middleware check or don't pass role id。因为也许您正在重新检查中间件的用户角色。您不必传递角色 ID。你可以进入Auth::user()->role_id
中间件。
推荐阅读
- javascript - Node.js - 在确认框中单击确定时如何删除条目
- spring - Spring Reactive Mongo Router Handler中的UpdateById方法
- api - 使用 Blogger API 插入的一些帖子未显示在主页上
- excel - excel长嵌套if
- ruby - 在Ruby中将mac地址转换为IPv6链接本地地址
- c# - TransactionScope 还原存储过程更改
- entity-relationship-model - 映射子类和常规实体之间的关系,以及映射两个子类之间的关系
- reactjs - 路由在我的“/about”代码中不起作用,而主页工作
- c# - 如何在 Visual Studio 2019 中添加 .mdf 文件?
- eclipse - 如何在 eclipse/lib GDX 中将代码导出到可运行的 JAR 中?