我正在使用 CakePHP 3.2。
我有categories
, products
,seller_products
表和它们的关联是
categories->hasMany('Products');
seller_products->hasMany('Products');
我必须按类别检索所有产品组,其中 Seller_products.stock > 0
这就是我正在做的
$pros1 = $this->Products->Categories->find()
->where([
'Categories.status' => 0,
])
->contain([
'Products.SellerProducts', 'Subcategories', 'Subcategories.ProductTypes'
])
->matching('Products.SellerProducts', function(\Cake\ORM\Query $q) {
return $q->where(['SellerProducts.stock >' => 0]);
});
但在调试时,它两次返回相同的值。
foreach($pros1 as $p){debug($p);}
两次打印相同的值
/src/Controller/PagesController.php (line 120)
object(App\Model\Entity\Category) {
'id' => (int) 1,
'title' => 'Electronics',
'description' => '',
'icon' => 'fa-television',
'status' => (int) 0,
'created' => object(Cake\I18n\Time) {
.........
}
/src/Controller/PagesController.php (line 120)
object(App\Model\Entity\Category) {
'id' => (int) 1,
'title' => 'Electronics',
'description' => '',
'icon' => 'fa-television',
'status' => (int) 0,
'created' => object(Cake\I18n\Time) {
.........
}
并debug(count($pros1))
打印 1