我的CakePHP项目中有一些类别,其中包含许多子类别,其中包含许多文本,其中包含许多和属于ToMany标记。 换句话说,文本可以被标记并属于子类别。子类别属于某个类别。
我正在寻找一种干净有效的方法来获取这些信息。我想要所有类别,所有这些子类别,依赖于它的文本及其标签。
我认为我的控制器第一次应该返回一个数组:
['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']
]);
我有两行,每个子类别一行,但我看不到文本。
我是否正确使用连接? 为什么我创建的文本在我的测试页面上不可见? 我的拼写错误是单一类别导致这种故障的原因吗?
我希望我能理解。