gpt4 book ai didi

Laravel Spatie 权限 - 用户和角色关系仅获取 id 和名称

转载 作者:行者123 更新时间:2023-12-02 18:46:08 25 4
gpt4 key购买 nike

我正在使用 Laravel Spatie Permissions 来管理我的应用程序中的角色和权限。我正在训练只检索用户和角色之间关系中的角色 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。

最佳答案

最简单的解决方案是使用 map 函数:

'roles'     => $this->roles->map(function($role){
return [
'id' => $role['id'],
'name' => $role['name']
];
})

关于Laravel Spatie 权限 - 用户和角色关系仅获取 id 和名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62097844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com