我有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
。
像$user->permissions()
这样的调用会从角色表中返回json
答案 0 :(得分:1)
您可以像这样在 User 模型中创建方法-
public function permissions()
{
return $this->userRole->role;
}
Laravel允许您这样称呼您的关系。在此 $ this 表示创建此方法的 User 模型。因此,在 $ this 上调用关系将毫无问题。
然后您可以像这样用用户集合来调用它-
$user->permissions();
如果要与已登录的用户一起使用,则可以这样称呼它-
auth()->user()->permissions();