我的数据库部分看起来像database part
类别使用树行为。
如何获得当前类别的制造商(生产商)产品? 我尝试了包含和匹配,但我收到了没有相关产品的重复数据或生产者名称。
编辑:
$query = $this->Producers->find()->matching('Products.Categories',
function ($q) {
return $q->where(['Categories.id' => 18]);
}
);
结果:
Producent: Canon
-------------------------------------------
| ID | Name | Barcode |
-------------------------------------------
| 1 | EOS 1000D | |
-------------------------------------------
| 18 | Camera | |
-------------------------------------------
| 23 | 18 | |
-------------------------------------------
第一行(id = 1)这就是我需要的。 现在我必须从结果中删除: 第二行(id = 18)这是表类别中的类别ID, thrid row(id = 23) - 来自Products_Categories表。
答案 0 :(得分:1)
完成。有工作查询:
$query = $this->Producers->find()
->select(['Producers.id','Producers.name', 'Products.id', 'Products.name'])
->matching(
'Products.Categories', function ($q) use ($categoryId){
return $q->where(['Categories.id' => $categoryId]);
}
);