Laravel 5.3雄辩的关系 - 用户,角色,页面和权限

时间:2016-11-03 18:46:00

标签: php laravel eloquent foreign-keys relationship

我正在为我的应用程序开发一种ACL,使用4个表:

all tables and relationships

我可以获得

的关系
  1. 用户和角色:

    $user = App\Models\User::find( Auth::user()->id );
    //
    foreach( $user->roles as $user_role )
    ...
    
  2. 角色和页面:

    $roles = App\Models\Role::find( $user_role->id );
    //
    foreach( $roles->pages as $role_page )
    ...
    
  3. 但是我坚持最后一部分,即获得用户可以访问的页面的权限。我不知道怎么做。

    我不认为我让自己清楚......

    我真正需要的是,获取用户可以访问的页面的PERMISSIONS。

    示例:

    用户1 - 拥有角色1 - 管理员的Mike,可以访问页面1 - Home,2 - Post和3 - Dashboard,现在我需要列出每个页面的权限..

    你能帮我编码吗?

    感谢和抱歉我的英语不好

3 个答案:

答案 0 :(得分:0)

我感谢你可以从用户那里尝试这样的页面:

$user = App\Models\User::find( Auth::user()->id );
//
foreach( $user->roles as $user_role ) {
  $user_pages = $user_role->pages;
  //...
}

查看这部分文档,也许会对您有所帮助:https://laravel.com/docs/5.3/eloquent-relationships#has-many-through

答案 1 :(得分:0)

如果我理解,您列出了用户有权访问的页面

如何获得该页面的权限?

你看到桌子的图片了吗?

谢谢!

答案 2 :(得分:0)

您可以使用 spatie / laravel-permission 包进行此