我是CakePHP的新手,遇到了以下问题:
我有三个表格,“Images”、“Keywords”和“KeywordCategories”。每张图片可以有多个关键词(多对多),每个关键词都有一个类别(多对一)。通过下面的代码获取图片列表:
$images = $this->Images->find()->contain(['Keywords', 'Keywords.KeywordCategories']);
返回一个类似于这样的结果结构:
[
{
"id":1,
"keywords":[
{
"keyword":"Dog",
"keyword_category":{
"title":"Animal"
}
},
{
"keyword":"Cat",
"keyword_category":{
"title":"Animal"
}
},
{
"keyword":"Black",
"keyword_category":{
"title":"Color"
}
}
]
}
]
那很好,但我希望关键字按其关键字类别分组,并以如下结构呈现:
[
{
"id":1,
"keyword_categories":[
{
"title":"Animal",
"keywords":[
{
"keyword":"Dog"
},
{
"keyword":"Cat"
}
]
},
{
"title":"Color",
"keywords":[
{
"keyword":"Black"
}
]
}
]
}
]
您有任何想法如何使用CakePHP查询实现此目标吗?