我想在登录后使用,用户输入 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'