如何访问Laravel中三向枢轴上的其他字段?
以下是我的体系结构的外观: 其思想是,用户在给定的组中有一个角色。当然,用户属于许多组,并且一个用户可以有多个角色(在不同的组中) 我正在尝试获取用户所属的所有组 请原谅我没有使用约定将数据透视表命名为组\角色\用户,我决定采用这种方式以提高可读性 因此,在用户模型中,我说:如何访问Laravel中三向枢轴上的其他字段?,laravel,Laravel,以下是我的体系结构的外观: 其思想是,用户在给定的组中有一个角色。当然,用户属于许多组,并且一个用户可以有多个角色(在不同的组中) 我正在尝试获取用户所属的所有组 请原谅我没有使用约定将数据透视表命名为组\角色\用户,我决定采用这种方式以提高可读性 因此,在用户模型中,我说: public function groups() { return $this->belongsToMany('\App\Group', 'roles_in_groups'); } 我认为: @foreach
public function groups() {
return $this->belongsToMany('\App\Group', 'roles_in_groups');
}
我认为:
@foreach ($user->groups as $group)
{{ $group->name }}
@endforeach
工作完美
现在我想访问角色
表。我想在{{{$group->name}中打印这样的内容:,你是{{{$group->role->name}
,显然,它不是这样工作的
如果我使用pivot
属性,它将只提供用户id
和组id
,甚至不提供角色id
,以使用静态方法进行搜索
那么,我如何才能做到这一点呢
我正在使用Laravel 5.7也许可以尝试:
public function roles() {
return $this->belongsToMany('\App\Role', 'roles_in_groups');
}
$user = \User::with(['roles','groups'])->first();
$role_name = $user->role->name
$group_name = $user->group->name
您的团队模式是什么样的?它有角色关系吗是的,它有。它被称为角色。
return$this->belongtomany('App\Role','Role\u in_group')
但是如果我调用$group->roles
它会返回一个集合(该组的所有角色),所以我不能调用$group->roles->role\u id
是的,它不会,因为它有很多角色,你必须循环角色,同时打印每个角色名,但这不是我想要的。我想获得该特定组中用户的rol名称有趣!我试试看。现在,我正在用用户模型中的另一个函数来解决这个问题,但我认为它可以只用ORM来完成。我试试你的代码