Laravel 5.5 Шпаргалка по отношениям в Eloquent

Laravel 5.5 Шпаргалка по отношениям в Eloquent

laravel

На основе статьи https://hackernoon.com/eloquent-relationships-cheat-sheet-5155498c209

Один к одному

Описание: две модели Owner (Владелец) и Car (Автомобиль) соответствующие двум таблицам owners и cars

Бизнес-логика: у владельца может быть один автомобиль, у автомобиля только один владелец.

Диаграмма отношений:

Детали: Cars должны хранить идентификатор Owner ID

Модели Eloquent:

Миграции:

Сохранение записей:

Извлечение записей:

Один ко многим

Описание: две модели Thief (Вор) и Car (Автомобиль) соответствующие двум таблицам thieves и cars

Бизнес-логика: вор может угнать несколько автомобилей, автомобиль может быть угнан одним вором

Диаграмма отношений:

Детали: таблица автомобилей должна хранить идентификатор вора

Модели Eloquent:

Миграции:

Сохранение записей:

Извлечение записей:

Полиморфные отношения один ко многим

Описание: три модели Мan (Мужчина), Woman (Женщина) и Car (Автомобиль), соответствующие таблицам men, women и cars

Бизнес-логика: мужчина (buyer) может купить несколько автомобилей, женщина (buyer) может купить несколько автомобилей,  автомобиль может быть приобретен одним покупателем (мужчиной или женщиной)

Диаграмма отношений:

Детали: автомобиль должен хранить идентификатор покупателя (Buyer ID) и вид покупателя (Buyer Type). "Buyer" - это условное название группы моделей (Man и Woman). Вообще, количество моделей в ней не ограничено двумя. Buyer Type - это название модели.

Модели Eloquent:

Миграции:

Сохранение записей:

Извлечение записей:

Многие ко многим

Описание: две модели Driver (Водитель) и Car (Автомобиль), три таблицы drivers, cars и сводная (pivot) таблица car_driver

Бизнес-логика: водитель может водить несколько автомобилей, данный автомобиль умеют водить несколько водителей.

Диаграмма отношений:

Детали: сводная таблица car_driver должна хранить идентификаторы водителя и автомобиля (Driver ID, Car ID)

Модели Eloquent:

Миграции:

Сохранение записей:

Извлечение записей:

Полиморфные отношения многие ко многим

Описание: три модели Valet (Работник), Owner (Владелец) и Car (Автомобиль), четыре таблицы valets, owners, cars и drivers (сводная (pivot) таблица).

Бизнес-логика: работник может водить несколько автомобилей, владелец может водить несколько автомобилей, автомобиль может иметь несколько водителей (работник или/и владелец)

Диаграмма отношений:

Детали: сводная (pivot) таблица "drivers" должна хранить идентификатор водителя (Driver ID), тип водителя (Driver Type) и идентификатор автомобиля (Car ID). "driver (водитель)" - это название группы моделей (Valet и Owner). Количество моделей в этой группы не ограничено двумя. Тип водителя - это название модели.

Модели Eloquent:

Миграции:

Сохранение записей:

Извлечение записей:

Таблица отношений

все материалы по Laravel 5