【发布时间】:2016-05-23 09:49:41
【问题描述】:
我的数据库片段看起来像 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, 第三行 (id = 23) - 来自 Products_Categories 表。
【问题讨论】:
-
到目前为止你尝试了什么?
-
我必须在当前类别中按生产商显示产品,即:类别:相机生产商佳能:-EOS 1000D - Powershot 生产商:尼康-产品 D5 - 产品:D700
-
@arilia 要求的是一些失败尝试的示例代码(理想情况下带有附加信息,例如是否可能存在尚未关联任何产品的生产商)。通常匹配是要走的路。
-
我的错,我理解不同——比如太深的联想。好的,这是我的实际结果,现在我更接近了。 ` $query = $this->Producers->find()->matching( 'Products.Categories', function ($q) { return $q->where(['Categories.id' => 18]); } ` 当然会返回 category.id = 18 的所有内容,例如 Category 和 Products_Categories 中的数据。
-
将代码添加到您的问题帖子中,而不是此处。
标签: cakephp-3.x