Возврат пустого объекта в ресурсе Laravel вместо нуляPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Возврат пустого объекта в ресурсе Laravel вместо нуля

Сообщение Anonymous »

У меня есть ресурс (DeviceResource) в моем API Laravel, который содержит другой ресурс (SimcardResource). Между этими ресурсами существует связь OnetoOne, но иногда у устройства нет связанной сим-карты.
В этом случае мой DeviceResource возвращает значение null simcard вместо пустого объекта json.
Мне нужен пустой json объект, потому что я представляю информацию, вызванную из моего API, в моем интерфейсе Vue, обращаясь к объекту, например. например, device.simcard.phone_number
Мой класс DeviceResource выглядит так:

Код: Выделить всё

public function toArray($request)
{
return [
'id' => $this->resource->id,
'model' => $this->resource->model,
'device_name' => $this->resource->device_name,
'operating_system' => $this->resource->operating_system,
'os_version' => $this->resource->os_version,
'emei' => $this->resource->emei,
'device_password' => $this->resource->device_password,
'purchase_date' => $this->resource->purchase_date,
'associated_worker' => $this->resource->associated_worker,
'remarks' => $this->resource->remarks,
'device_status_id' => $this->resource->device_status_id,
// 'simcard' => $this->resource->simcard ?: (object)[],
'simcard' => SimcardResource::make($this->whenLoaded('simcard'))  ?: (object)[],
];
}
Раздел с комментариями:

Код: Выделить всё

'simcard' => $this->resource->simcard ?: (object)[]
Работает отлично, но возвращает все поля из моей таблицы SIM-карт, но мне нужны только поля, определенные в моем классе SimcardResource, поэтому я попробовал следующее:

Код: Выделить всё

'simcard' => SimcardResource::make($this->whenLoaded('simcard'))  ?: (object)[]
Но он по-прежнему возвращает значение null вместо пустого объекта json.


Подробнее здесь: https://stackoverflow.com/questions/750 ... ad-of-null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»