определенные сущности в "Папки"
Собственно есть модель "Folder", есть модель "Аудио", "Видео". (аудио и видео здесь абстрактный пример, просто для понимания, что есть разные сущности, к которым я хочу добавить возможность "размещения в папку", при этом в папке может быть только определенный тип сущностей)
В связи с этим у меня есть таблица folders описывающая саму папку
Есть таблица folderables которая является связующей (ид папки, folderable_id и folderable_type для полиморфного отношения к сущности, которая будет помещаться в папку)
Ну и между моделями настроены полиморфыне связи.
Вопрос, как правильно выдернуть всю структуру (И папки, и сущности в них находящиеся)
При условиях:
НЕ ВСЕ сущности имеют связь к папкам
Папки могут быть пустыми
То есть достать простым отношением их не выйдет, т.к. могут быть "Видео" не находящиеся в папке, и могут быть "Папки" не содержащие видео.
Я думаю над двумя вариантами, первый - делать FULL OUTER JOIN (который mysql похоже не поддерживает)
Второй - Выбирать сначала все папки, потом все "Сущности" нужного типа с отношениями к папкам, и клеить их вручную.
Но может быть есть более простой, третий вариант?
Spatie media library
"Файлы" здесь абстрактная штука для общего понимания, по факту там используются определенные модели, которые нужно распихать по папкам :)
Обсуждают сегодня