【发布时间】:2020-04-25 22:59:00
【问题描述】:
我只需要返回具有权限name 列的数组,但不能使其与->pluck() 一起使用
class User
{
public function roleTeams()
{
return $this->hasMany(RoleTeam::class);
}
}
class RoleTeams
{
public function roles()
{
return $this->belongsToMany(Role::class);
}
}
class Role
{
public function permissions()
{
return $this->belongsToMany(Permission::class);
}
}
这是我根据找到的类似答案尝试的最后一个代码。
$permissions = $user->roleTeams()->with('roles.permissions')->pluck('roles.*.permissions.*.name')->all();
预期的结果是
[
'edit_user',
'delete_user',
...
]
【问题讨论】:
-
这没有任何意义,所有的关系都工作正常,我的问题是只返回一个包含 permissions.name 列内容的数组。
-
用它来通过另一个关系访问一个关系。在您的情况下,它可能行不通,因为您有 3 个分支关系而不是 2 个。也许您应该重新考虑您的设计。
-
它与公认的答案完美配合,无论如何感谢您的时间:)