Я использую Laravel Spat ie Permissions для управления ролями и разрешениями в моем приложении. Я пытаюсь получить только идентификатор роли и имя в отношении между пользователями и ролями. Мой 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.