【发布时间】:2021-06-01 20:52:27
【问题描述】:
我正在使用Laravel Jetstream 团队功能并希望获取所有团队成员及其角色的列表。
JetStream 的以下方法可以返回用户的角色
public function teamRole($team)
{
if ($this->ownsTeam($team)) {
return new OwnerRole;
}
if (! $this->belongsToTeam($team)) {
return;
}
return Jetstream::findRole($team->users->where(
'id', $this->id
)->first()->membership->role);
}
当用户点击路线/teams/{team} 时,我想回复所有团队成员的姓名以及他们在团队中的角色,因此我创建了一个TeamResource,如下所示。
class Team extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,
'user_id' => $this->user_id,
'owner_name' => $this->owner->name,
'owner_email' => $this->owner->email,
'name' => $this->name,
'personal_team' => $this->personal_team,
'users' => TeamMemberResource::collection($this->allUsers()),
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
}
下面是我的TeamMemberResourceUser 模型
class TeamMember extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,
'first_name' => $this->first_name,
'last_name' => $this->last_name,
'role' => //How do I get user's role in this team
'name' => $this->name,
'email' => $this->email,
'active' => $this->active,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
}
关系是User 有很多Team。
TeamUser 表有 role 列。
如何访问给定团队中用户的角色?
谢谢
【问题讨论】:
标签: laravel