Laravel 5.4:取决于角色的用户模型关系
我想问一下这种情况下的最佳策略(使用MySQL DB): 我有一个用户模型/表。用户可以是3种不同的类型:管理员、所有者和工作者Laravel 5.4:取决于角色的用户模型关系,laravel,eloquent,laravel-eloquent,Laravel,Eloquent,Laravel Eloquent,我想问一下这种情况下的最佳策略(使用MySQL DB): 我有一个用户模型/表。用户可以是3种不同的类型:管理员、所有者和工作者 店主有很多地方 这个地方有很多工人 该工人属于某个位置 我看到的第一个选项: 所有者和工作者扩展用户模型是否有意义,因为他们有公共字段,并在用户表中添加“角色”字段 为所有者和工作者创建另外两个表是否正确 在这种情况下,口才如何处理人际关系 第二个选项(更简单,但…): 管理员、所有者和工作人员是3种不同的模型/表 然后我想得到如下数据: $location-
- 店主有很多地方
- 这个地方有很多工人
- 该工人属于某个位置
然后我想得到如下数据:
- $location->owner()//获取此位置具有“owner”角色的用户
- $location->workers()//获取此位置具有“workers”角色的用户
- $owner->workers()//获取与所有者相关的worker
- 用户表
- 角色表
- 角色\用户透视表
- 位置表
- 用户数据透视表的位置
public function scopeOwners($query)
{
$query->whereHas('roles', function ($q) {
$q->where('name','owner');
});
}
很简单。我想说的是,保留单用户表,并将角色作为归属关系的中间表,这样在将来,如果用户可以有多个角色,它将被处理。您可以在用户模型上定义location和worker-belongsTo关系,这本身没有问题,如果该关系没有其他角色的数据,它将返回null。谢谢,但是接下来如何设置模型:$location->workers()或$owner->workers()?