请帮帮我!
我有用户模型和迁移:id, login, password
。
3个角色和模型(Admin
,Teacher
,Student
),以及有关用户的更多信息。用户可以担任多个角色(他可以是管理员和老师)
还有一个带有列的多态模型角色:
user_id
roleable_id
roleable_type
例如User::find(1)->roles;
我希望结果显示两个模型(管理员和老师)。 拜托,帮我))
答案 0 :(得分:0)
您可以尝试在用户模型https://gist.github.com/thisdotvoid/3022fee8afa53e45a6b89da3f16b3815中使用它来加载模型。添加所需的变形函数,然后向用户模型添加三个与此函数类似的函数(相应地更改名称和模型名称):
public function admin()
{
return BelongsToMorph::build($this, 'App\Admin', 'rolable');
}
然后创建一个
之类的mutator函数。function getRolesAttribute()
{
$roles = new Collection();
$roleNames = ['admin', 'teacher', 'student'];
foreach ($roleNames as $role) {
$hasRole = $this->{$role};
if ($hasRole) {
$roles->push($role);
}
}
return $roles;
}