url-routing - laravel - 动态路由组前缀作为角色
问题描述
我想在登录后使用,用户输入 laravel 路由组前缀。但我没有找到一个完美的方法来做到这一点。
例如:我有三种用户类型-
1- admin
2- executive
3- user
我想制作一个动态路由前缀,例如:
1- admin/dashboard
2- executive/dashboard
3- user/dashboard
我正在尝试使用帮助文件执行此操作
//获取url前缀helper.php的部门名称
function routePrefix(){
$userDepartment = '';
if(Auth::user() != ''){
$dept_id = Auth::user()->department_id;
$userDepartment = Str::of(Department::where('id', $dept_id)->first()->department)->slug('-');
}
return $userDepartment;
}
在这里,我无法在帮助文件中获取身份验证详细信息,这是我的路由组中身份验证中间件的原因
网页.php
Route::group([
'middleware' => ['auth', 'accessControl'],
'prefix' => routePrefix(),
], function () {
Route::get('dashboard', 'UserController@index')->name('user.index')
})
当我在帮助程序中传递静态部门 ID 时,这里所有的东西都正常工作,但是如果我尝试登录用户部门,我会收到以下错误
ErrorException 试图获取非对象的属性 'department_id'
解决方案
推荐阅读
- html - 根据调用该函数的 html 组件在同一个函数中执行不同的操作
- javascript - 从数组中的另一个对象更新数组中的对象
- jquery - 旧的 jquery 构建和 .ajax()
- powershell - 尝试使用 Get-WmiObject 来决定调用什么脚本
- python - 运行@click.command 时程序停止
- python - 为什么 session._get_current_object() 返回的对象 id 在每次请求时都会更改,而 session 的 id 保持不变?
- php - 如何在没有发现问题的情况下复制供应商文件夹
- kubernetes - 带入口控制器的掌舵
- xml - 是否可以将查询结果与编辑结合起来?
- android - 错误:x86 仿真当前需要硬件加速