从相关表中获取格式化的属性以进行雄辩的建模

时间:2019-03-04 10:37:34

标签: laravel laravel-5 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。 像$user->permissions()这样的调用会从角色表中返回json

1 个答案:

答案 0 :(得分:1)

您可以像这样在 User 模型中创建方法-

public function permissions()
{
    return $this->userRole->role;
}

Laravel允许您这样称呼您的关系。在此 $ this 表示创建此方法的 User 模型。因此,在 $ this 上调用关系将毫无问题。

然后您可以像这样用用户集合来调用它-

$user->permissions();

如果要与已登录的用户一起使用,则可以这样称呼它-

auth()->user()->permissions();
相关问题