首页 > 解决方案 > 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'

标签: url-routinglaravel-7usertypedynamic-routing

解决方案


推荐阅读