Можно ли использовать ресурс API в контроллере? У меня есть ресурс, который выглядит следующим образом:
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
];
}
И когда я использую его через HTTP-запросы, в контроллере в качестве ответа, как это:
public function getUser($id)
{
return new UserResource(User::find($id));
}
Ответ является ожидаемым потому что это целевое использование, верно? * переменная содержит все поля модели User
, минуя метод toArray()
ресурса.
Я хочу добиться единообразного способа отображения пользовательских полей в приложении (особенно из-за отношения и переименование полей), будь то через API или в виде блейдов.
Я пробовал $user->toArray($request)
и $user->jsonSerialize()
, но это относится только к первому уровню ресурса. Отношения по-прежнему являются сложным объектом с большим количеством ключей и ощущаются как слишком сложные (более) эти проблемы.
Возможно ли это или есть другой, более подходящий способ сделать это?