Здравствуйте, подскажите как сделать следующие:
- у меня есть сущность, например user и у нее какие-то свойства (name, last_name ...) эти свойства - это колонки таблицы users
- мне нужно отдать на api запрос какого-то user'a и для этого я возвращаю из контроллера UserResource, где в методе toArray описываю как должен выглядеть ответ (мапинг свойств сущности)
- а что делать, если мне к этому ответу нужно кое что добавить, конкретно сейчас, у меня есть редис и в нем некая информация с TTL, вот ее я и хочу отдать в ответ, те на ряду с name, last_name ... должны быть доп.поля мои, которые НЕ являются свойствами сущности (модели user), конкретно у меня там коды подтверждения c ttl в 5 минут, если в редисе они есть, мне надо их показать (комменты на примере)
как такое сделать, как "прокинуть сторонние данные" в ресурс?
/** @mixin \App\Models\User */
class UserResource extends JsonResource
{
/**
* @param Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'first_name' => $this->first_name,
'last_name' => $this->last_name,
'email' => $this->email,
'phone' => $this->phone,
'phone_pretty' => $this->phone,
'email_verified_at' => $this->email_verified_at,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
// 'redis_balance' => ...,
// 'redis_code'=> ....
// 'redis_ttl'=> ....
];
}
}
Пробовал с
$resource->additional(...)
, но он просто добавляет данные к ответу (array_push)