У меня есть следующие таблицы:Laravel 5,1 - Полиморфные отношения для нескольких столбцов
изображения (идентификатор, имя файл ...)
страница (название, пробковые ...)
пользователи (имя пользователя, адрес электронной почты ...)
Я создал imageables стол, чтобы сохранить изображение отношения
image_id/imageable_id/Тип (Страницы/Пользователи и т.д.)
Он отлично работает, если мне нужно только одно изображение (ы) поле на модель.
Но как я должен действовать, если мне нужно, например header_image и paragraph_image в одной странице?
Если я хочу один header_image/paragraph_image я могу держать поле непосредственно в модели (header_image_id, paragraph_image_id), но что, если у меня есть верхний ползунок и галерея для статьи .. мне нужно будет 2 многие из многих отношений.
Можно ли сохранить все из них в одном изображений для изображений стол? Теоретически мне понадобится еще одна колонка для однозначности (например, имя поля).
Он работает в этом случае, но я стараюсь избегать создания опорных точек для каждой модели, где мне нужны изображения, поэтому я пытаюсь использовать полиморфные отношения. –
В этом случае вы были правы с вашим заключением. Просто создайте таблицу Полиморфного отношения, называемую Изображения со следующими столбцами: id, filename, type (header, slider, paragraph ...), imageable_id (это будет содержать идентификатор страницы или любой другой модели), imageable_type (это будет содержать Название модели).Если вы хотите знать, как создать модель, проверьте это: https://laravel.com/docs/5.1/eloquent-relationships#polymorphic-relations –
Я бы предпочел многополиморфную таблицу многоголоса с image_id/imageable_id - item id/imageable_type - Model name/+ имя поля, если у меня есть несколько полей в одной модели (слайдер, изображения статей). Я не знаю, возможно ли это. –