php – Laravel 5.1用户,角色和行动

php – Laravel 5.1用户,角色和行动,第1张

概述我正在使用Laravel 5.1创建一个包含用户,角色和 *** 作的应用程序. 表格设置如下: 用户 id name1 John Smith2 Fred Smith 角色 id name1 Administrator2 Customer ROLE_USER user_id role_id1 12 1 行动 我正在使用Laravel 5.1创建一个包含用户,角色和 *** 作的应用程序.

表格设置如下:

用户

ID    name1     John Smith2     Fred Smith

角色

ID    name1     administrator2     Customer

RolE_USER

user_ID    role_ID1          12          1

行动

ID    name        description                    path1     dashboard   ability to access dashboard    /admin2     editadmin   ability to edit admins         /admin/users/administrators/{ID}/edit

action_role

action_ID    role_ID1            12            1

用户表包含站点上的所有用户,包括管理员和客户.

角色表包含​​用户可以拥有的所有可能角色.例如管理员或客户.

role_user表是一个将角色与用户链接的数据透视表.

*** 作表列出了应用程序上可能的所有 *** 作(即URL或路由).

action_role是一个数据透视表,用于将 *** 作与角色相关联.

总结一下:

>用户有角色
>角色有行动
>用户可以拥有许多角色
>角色可以有很多动作

我想要一个中间件设置,如果用户有权查看当前页面,它会检查页面加载.为了做到这一点,我需要能够使用如下调用来访问用户 *** 作:

$user->roles()->actions();

如何设置我雄辩的关系来支持这种呼叫?

UPDATE

我的关系在我的模型中设置如下:

用户

/** * The roles that belong to the user. * * @return Object */public function roles(){    return $this->belongsToMany('App\Models\User\Role')->withTimestamps();}

角色

/** * The actions that belong to the role. * * @return Object */public function actions() {    return $this->belongsToMany('App\Models\User\Action');}/** * The users that belong to the role. * * @return Object */public function users(){    return $this->belongsToMany('App\Models\User\User');}

行动

/** * The roles that belong to the action. * * @return Object */public function roles() {    return $this->belongsToMany('App\Models\User\Role');}
解决方法 Eloquent在两个数据透视表中没有HasManyThrough关系.

1.您可以通过懒惰的加载角色和 *** 作来获取 *** 作,然后提取它们:

$actions = $user->load('roles.actions')->roles->pluck('actions')->collapse()->unique();

2.您可以使用whereHas约束直接在数据库中检查 *** 作:

$allowed = $user->roles()->whereHas('actions',function ($query) use ($action) {    $query->where('name',$action);})->exists();
总结

以上是内存溢出为你收集整理的php – Laravel 5.1用户,角色和行动全部内容,希望文章能够帮你解决php – Laravel 5.1用户,角色和行动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1246314.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存