Я получил ресурс с двумя возможными опорными точками. Теперь я хотел бы добавить значения в зависимости от того, какая точка загрузки загружена.
Вот как я это делаю в данный момент:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Http\Resources\PotentiallyMissing;
class CarAttributeResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
*
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'title' => ($title
= $this->whenPivotLoaded('car_car_attribute',
function () {
return (boolean)$this->pivot->custom === true
? $this->pivot->title : $this->title;
})) instanceof PotentiallyMissing
&& $title->isMissing() ? (($title_ppa
= $this->whenPivotLoaded('car_bundle_car_bundle_attribute',
function () {
return (boolean)$this->pivot->custom === true
? $this->pivot->title : $this->title;
})) instanceof PotentiallyMissing
&& $title_ppa->isMissing() ? $this->title : $title_ppa) : $title,
];
}
}
Выглядит не очень хорошо, верно?
Ребята, вы видите какие-нибудь возможности сделать это? более элегантно и читабельно?