Laravel 5.3 Eloquent 关系 - 用户、角色、页面和权限
Posted
技术标签:
【中文标题】Laravel 5.3 Eloquent 关系 - 用户、角色、页面和权限【英文标题】:Laravel 5.3 Eloquent Relationship - User, Role, Pages and Permissions 【发布时间】:2017-03-17 11:38:31 【问题描述】:我正在为我的应用程序开发一种 ACL,使用 4 个表:
all tables and relationships
我可以得到关系
用户和角色:
$user = App\Models\User::find( Auth::user()->id );
//
foreach( $user->roles as $user_role )
...
角色和页面:
$roles = App\Models\Role::find( $user_role->id );
//
foreach( $roles->pages as $role_page )
...
但我被困在最后一部分,即获得用户有权访问的页面的权限。我不知道怎么做。
我觉得我没有说清楚……
我真正需要的是,获取用户可以访问的页面的权限。
例子:
用户 1 - 具有角色 1 - 管理员的 Mike,可以访问页面 1 - 主页、2 - 发布和 3 - 仪表板,现在我需要列出每个页面的权限..
你能帮我编码吗?
感谢和抱歉我的英语不好
【问题讨论】:
你需要从 Laravel 5.3 授权页面获得帮助。 laravel.com/docs/5.3/authorization 【参考方案1】:您可以为此使用 spatie/laravel-permission 包
【讨论】:
【参考方案2】:如果我理解得很好,您正在列出用户可以访问的页面
如何获得该页面的权限?
你看到桌子的图片了吗?
谢谢!
【讨论】:
【参考方案3】:感谢您可以尝试这样的方式从用户那里获取页面:
$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
【讨论】:
以上是关于Laravel 5.3 Eloquent 关系 - 用户、角色、页面和权限的主要内容,如果未能解决你的问题,请参考以下文章
从 5.1 迁移到 5.3 时急切加载关系的 Laravel 错误
Vue 2 Laravel 5.3 Eloquent 无法从对象中检索数据