与该网站上的其他许多问题一样的故事:我一直在脑海里扎了几个小时,试图弄清这些关系。
我有3种关系应该像这样的模型:
型号:用户
用户可以属于许多学校。
用户在每个学校中分别属于一个“角色”。
可以在每个学校分别激活/停用用户。
型号:学校。
学校可以属于许多用户
模型:角色。
角色将是“标准”或“管理员”。
我有一个连接用户和学校的数据透视表。 在数据透视表上,我还尝试添加'role_id'和'is_activated'列-我怀疑这样做是否正确?
我要访问这样的数据:
用户
获取属于该用户的学校。
担任当前学校的职务。
获取当前学校的激活/停用状态。
学校
获取所有属于学校的用户。
获取每个用户的角色。
获取每个用户的激活/停用状态。
如果每个用户只能属于一所学校,我将解决此问题,但是由于同一用户可以属于多所学校,这对我来说太复杂了。
我应该在每种模型上应用哪种关系?
如果有人能指出我正确的方向,我将非常感激。谢谢!
答案 0 :(得分:0)
您可以在many-to-many
和user
之间建立school
关系。这将需要它们之间的数据透视表来存储两个模型的ID。最后,从用户的角度来看,您的关系将最终成为:
public function schools() {
return $this->belongsToMany('App\Models\School', 'pivot_table', 'user_id', 'school_id');
}