Найти много объектов 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']
]);
У меня есть два ряда, по одному для каждой подкатегории, но я не вижу текстов.
Я правильно делаю, используя соединения? Почему созданные мной тексты не видны на моей тестовой странице? Является ли моя орфографическая ошибка в единственном числе категорий причиной этой неисправности?
Надеюсь, мне понятно.