【发布时间】:2015-09-02 10:39:19
【问题描述】:
我正在创建一个用户具有不同角色的应用。一些角色包括:
- 管理员
- 主管
- 承包商
我有以下表格设置:
userrolerole_user
role_user 是用于存储user_id 和role_id 的数据透视表。
现在,当创建 Contractor 时,我会触发一个事件,将用户分配给数据库中的 Contractor 角色:
$user->roles()->save($role, ['cust_id' => $event->user->cust_id]);
以上行基本上只是在role_user 数据透视表中创建了一个新行,并指向Contractor 的role_id。这导致用户拥有 Contractor 权限。
此外,在我需要将用户分配给 主管 的情况下。但是,没有 Supervisor 模型。主管也存储在用户表中,并分配给他们一个主管角色。
我如何才能在 Contractors 和 Supervisors 之间建立关系?
理想情况下,我想使用这样的东西在数据透视表中创建承包商/主管关系:
$user->supervisors()->save($supervisors, ['cust_id' => $event->user->cust_id]);
但我不确定如何设置我的模型...?
/**
* The supervisors that belong to the user.
*
* @return Object
*/
public function supervisors()
{
return $this->belongsToMany('SimplyTimesheets\Models\User\User')->withTimestamps();
}
【问题讨论】: