Достижение Laravel Eloquent Model Inheritance - PullRequest
0 голосов
/ 27 мая 2018

У меня в настоящее время есть таблица vehicles, которая содержит «Автомобили».

Теперь я хочу разрешить системе иметь Bikes, Cars и Trucks.У них есть некоторые общие поля (factory_id, пробег, ...), но у них также есть определенные поля (Bike: cyl_capacity, сиденья; Автомобиль: двери, ...)

Я пробовал использовать все колонки в транспортных средствахтаблицы, а затем использовать модели для обработки различий, но у меня были проблемы с настройкой полей для дочерних моделей ...

Затем я прочитал о полиморфных отношениях, и мне кажется, что это правильный путь.

Итак, мои вопросы: какой подход лучше?Как лучше всего это реализовать?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Я иногда расширяю другие модели, и все работает как положено.Миграции необходимо настраивать отдельно, но логика класса (атрибуты и методы) будет работать обычным способом ООП.Если вы знакомы с этим, просто делайте то, что вы делаете!

0 голосов
/ 27 мая 2018

Создание дополнительных таблиц:

  1. vehicles_types для хранения типов, таких как автомобили, велосипеды и т. Д.
  2. vehicles_attributes для хранения определенных атрибутов типа, связанных через vehicle_type_id с полямиvehicle_type_id, name, value.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...