【发布时间】:2021-11-24 10:33:53
【问题描述】:
我正在尝试获取所有角色,无论他们是否被分配了一些权限,如果被分配了权限,那么我想使用 eloquent 将它们显示在每个角色的前面。
我正在尝试的查询
$roles = role::select('roles.*','role_permissions.permission_id')
->leftjoin('role_permissions', 'roles.id', '=', 'role_permissions.role_id')
->get();
此查询的问题是,如果为角色分配了多个权限,它会重复该角色。 例如:
它以这个顺序显示结果(这只是为了快速理解)。
我怎样才能以这种方式获得['role_id' => 1, 'permission_id' => [1,2] ] 雄辩的结果。
榜样
public function permissions()
{
return $this->belongsToMany(\App\Models\permission::class, 'role_permissions');
}
权限模型
public function roles()
{
return $this->belongsToMany(\App\Models\Role::class, 'role_permissions');
}
【问题讨论】:
标签: eloquent eloquent-relationship