Отображение связанных сущностей

Обсуждаем, как правильно строить приложения
Закрыто
KEFIR4UK
Сообщения: 91
Зарегистрирован: 2014.12.13, 16:24

Отображение связанных сущностей

Сообщение KEFIR4UK » 2018.11.25, 23:24

Доброго времени суток! У меня как бы простенькая задачка - все го то формировать json с определенной стуктурой:

Код: Выделить всё

"stories": [
        {
            "storyID": "66d2efb9-2e16-4251-8e9d-8caa44323f81",
            "status": 0,
            "categoryID": "0345aa43-7fd8-4f32-a65a-143da19df423",
            "details": {
                "title": "Lily Green"
            },
            "seasons": [
                {
                    "seasonID": "b6ccd3c7-ddd4-4044-a342-2f167532f2f2",
                    "status": 0,
                    "details": {
                        "title": "Season0",
                        "body": "He called me his little girl. The father could do anything he wanted with his little girl. 10 years ago he forced me to kill my mother. Today I’m gonna kill him.",
                        "previewAssetID": "e355a090-c10c-4feb-82c6-cf0279408b6b",
                        "coverAssetID": "e8cc3da6-03b4-46f4-8dce-bc02cf143f8d"
                    },
                    "episodes": [
                        {
                            "episodeID": "8c202576-d79f-4acc-8ea9-a8fa9600da9a",
                            "status": 0,
                            "preload": false,
                            "details": {
                                "title": "EpisodeTitle0"
                            },
                            "assetID": "67187c26-386b-419e-a30f-43fd4ff7ab8a"
                        }
                    ]
                }
            ]
        }
    ]
Все необходимые данные в бд уже есть, и есть уже соответственные сущности. Но проблема в том что вложенность обектов будет расти.
И вот тут у меня ступор - потому что я немогу понять як елегантно обойти все связанные сущности не затрагивая клиенский код потом.
Думал воспользоватся шаблоном Композит но что то я сейчас плохо себе придставляю как можно с его помощью это реализовать.
Буду признателен за идеи (простой foreach прошу не предлагать)

Loveorigami
Сообщения: 848
Зарегистрирован: 2014.08.27, 21:54

Re: Отображение связанных сущностей

Сообщение Loveorigami » 2018.11.26, 13:45

Попробуй так
1. Модель Stories
2. Модель StoriesDetails в которой метод fields возвращает ['title'];
3. Объявляешь в Stories связь с моделью StoriesDetails. (public function getDetails())
4. В этой же модели Stories добавляешь в fields эту созданную связь (public dunction fields(){ return ['attr1', 'attr2'.....'details'];})

По аналогии - для сезонов, внутри которой будут связи с деталями сезона и эпизодами...

Закрыто