laravel - 从 eloquent 模型的相关表中获取格式化属性
问题描述
我有 3 张桌子
1. User table[id, name, email]
2. user_roles[user_id, role_id]
3. roles[ id, permission{post:{edit:true,delete:false}} ]
user hasone user_roles
roles belongs to user_roles
userRole.role
急切地加载到用户模型中
是否可以通过在用户模型中调用一些自定义函数来获得权限。而不是user->userRole->role
每次。like call like$user->permissions()
将从角色表中返回 json
解决方案
您可以像这样在您的用户模型中创建一个方法-
public function permissions()
{
return $this->userRole->role;
}
Laravel 允许你这样称呼你的关系。这里$this代表您创建此方法的用户模型。因此,在$this上调用关系将毫无问题。
然后你可以像这样用你的用户集合调用它 -
$user->permissions();
如果您想将其与登录用户一起使用,则可以这样调用它-
auth()->user()->permissions();
推荐阅读
- python - Pythonic 替换字符的方法
- javascript - 如何在 AJAX 中区分连接问题和用户中止
- sql-server - 如何过滤这个数据库
- javascript - angular 6 服务 url 最佳实践
- javascript - 不寻常的 javascript 对象表示法
- javascript - 如何为 Gmail 制作稳定的书签
- visual-studio - Visual Studio - 使用坐标打印“X”
- bash - docker:如何在 dockerfile 中设置端口
- ethereum - 如何判断 ERC20 代币转移是否成功?
- java - 如何优化此解决方案?(在给定范围内切割数组的特定部分)