Я строю REST API, используя Laravel. В моей базе данных есть таблица с именем container. Контейнер имеет внешнюю связь с другой таблицей под названием Магазин. Наконец, есть таблица изображений, которая имеет внешний ключ к таблице магазинов. Я хочу иметь конечную точку для своих контейнеров, которая будет возвращать данные контейнера, включая данные из Магазина, которым он назначен, а также все изображения, назначенные магазину.
это мой ресурс Контейнера:
class Container extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,
'shop_id' => $this->shop_id,
'shop' => (new ShopResource($this->whenLoaded('shop')))
];
}
}
это ресурс моего Магазина:
class Shop extends JsonResource
{
public function toArray($request)
{
return parent::toArray($request);
}
}
а вот мой контроллер Контейнера:
class ContainerController extends Controller
{
public function index()
{
return ContainerResource::collection(Container::with('shop')->get());
}
}
В основном в Django все, что мне нужно было бы сделать, это присвоить related_name для модели изображения (например, related_name = "images"), и я бы получил все изображения, связанные с моделью магазина, в моей базе данных, используя, например, , Shop.objects.first (). Изображения, которые будут учтены в сериализаторе контейнеров. Как добиться того же эффекта с Laravel Rest API?