Найти много объектов CakePHP 3.0

В моем проекте CakePHP есть несколько категорий, у которых есть много подкатегорий, у которых есть много текстов, у которых есть теги any и anyToMany. Чтобы перефразировать его, тексты могут быть помечены и принадлежать подкатегории. Подкатегория принадлежит категории.

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

В первый раз я думаю, что мой контроллер должен возвращать массив вроде:

['categories'=>[[
    'name'=>'cat1' 'subcategories'=>[[
        'name'='sub1', texts=>[[
            'name'=>'text1', 'tags'=>['tag1', 'tag2']
        ]]
    ]]
]]]

Поэтому я попытался построить эту структуру вручную и сделал цикл в цикле... Код был настолько ужасен, что я знал, что мой путь был неправильным.

Я пытался объединить все таблицы вместе с помощью метода 'find', но, похоже, он не работает. вот начало кода:

        $query = $categories->find('all', [
        'where'=>['Categorie.enabled ='=>true],
        'join'=>[
        [
            'table' => 'Subcategories',
            'type' => 'LEFT',
            'conditions' => 'Subcategories.categorie_id = Categories.id'

        ],[
            'table' => 'Texts',
            'type' => 'LEFT',
            'conditions' => 'Texts.subcategorie_id = Subcategories.id'

        ]
        ],
        'fields' => ['Subcategories.name', 'Categories.name']
        ]);

У меня есть два ряда, по одному для каждой подкатегории, но я не вижу текстов.

Я правильно делаю, используя соединения? Почему созданные мной тексты не видны на моей тестовой странице? Является ли моя орфографическая ошибка в единственном числе категорий причиной этой неисправности?

Надеюсь, мне понятно.

0 ответов

Другие вопросы по тегам