如何解决如何通过Laravel 7中的变体枢轴建立另一种关系 表格模型与关系团队
表格
- id
- 名称
团队
- id
- 名称
角色
- id
- 名称(所有者| admin |成员)
user_team_role
- user_id(users.id)
- team_id(teams.id)
- roleable_id(roles.id)
- roleable_type(App \ Model \ Role)
模型与关系
App \ Model \ User.PHP
public function roles(): MorphToMany
{
return $this->morphedByMany(Role::class,'roleable','roles','user_id','roleable_id')
}
App \ Model \ Team.PHP
public function roles(): MorphToMany
{
return $this->morphedByMany(Role::class,'team_id','roleable_id');
}
通过此设置,我可以在User
或Team
中获得角色,但这只是具有user_id和team_id的角色数据,现在我尝试获取User
或{{1 }}实际数据,这就是我现在要做的
团队
Team
它工作正常,但是有两个问题:
- 我真的不喜欢在模型中包含业务逻辑,希望它只能进行关系设置
-
public function roleUsers(string $role): Builder { return User::whereIn('id',$this->roles()->where('name',$role)->pluck('user_id')); }
如果只能通过使用roleUsers
来完成,则需要两次查询才能完成工作,即使它是丑陋的sql,也应该仅是一个查询
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。