Когда я звоню красноречивым:
$user = User::where('idUser', 1)->with(['privilege'])->first()->toArray();
Это дает мне:
{
"idUser": 1,
"name": "UserName",
"email": "UserName@gmail.com",
"image": "https://image.com",
"createdAt": "2019-05-07 15:43:47",
"privilege": {
"idPrivilege": 1,
"name": "user"
}
}
Когда я звоню Eloquent:
$user = User::where('idUser', 1)->with(['privilege:name'])->first()->toArray();
Элемент privilege
в json установлен на null
, но когда я звоню:
$user = User::where('idUser', 1)->with(['privilege:idPrivilege,name'])->first()->toArray();
Это так же, как первый звонок. Как я могу установить элемент privilege
на е.е. user
(я просто хочу простое значение вместо полного объекта Privilege
)?
Я могу использовать что-то вроде:
$user['privilege'] = $user['privilege']['name'];
Но этот не выглядит так хорошо!
Использование ресурса:
public function toArray($request)
{
return [
'idUser' => $this->idUser,
'name' => $this->name,
'email' => $this->email,
'privilege' => $this->privilege['name'],
'createdAt' => $this->created_at,
];
}
В контроллере:
$user = User::where('idUser', 1)->with('privilege')->first();
return UserResource::make($user);
Дает:
{
"data": {
"idUser": 1,
"name": "UserName",
"email": "UserName@gmail.com",
"privilege": "user",
"createdAt": "2019-05-07 15:43:47"
}
}
Как я могу просто вернуть объект вместо data {object}?