【发布时间】:2020-09-17 17:23:32
【问题描述】:
我正在使用 Laravel Spatie 权限来管理我的应用中的角色和权限。我被训练在用户和角色之间的关系中只检索角色 ID 和名称。我的 UserResource 如下所示:
class UserResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'surname' => $this->surname,
'email' => $this->email,
'inactive' => $this->inactive,
'roles' => $this->roles
];
}
}
json 看起来像这样:
"data": [
{
"id": 1,
"name": "Admin",
"surname": "Sudo",
"email": "admin@sudo.com",
"inactive": 0,
"roles": [
{
"id": 1,
"name": "Admin",
"guard_name": "web",
"created_at": "2020-05-28 23:18:58",
"updated_at": "2020-05-28 23:18:58",
"pivot": {
"model_id": 1,
"role_id": 1,
"model_type": "App\\User"
}
}
]
},
]
我真正需要的是这样的 json:
"data": [
{
"id": 1,
"name": "Admin",
"surname": "Sudo",
"email": "admin@sudo.com",
"inactive": 0,
"roles": [
{
"id": 1,
"name": "Admin",
},
{
"id": 2,
"name": "Default",
},
{
"id": 3,
"name": "Guest",
}
]
},
]
我真的不知道如何修改我的模型关系或参数 $this->roles(在 UserResources 中)以获得这个 json。
【问题讨论】:
-
请分享加载用户角色的代码
标签: laravel laravel-6.2 laravel-permission