2

我是stackoverflow的新手,这是我的第一个问题。请原谅我的任何错误。

我正在使用 CakePHP 3.2

我有categories, products,seller_products表,它们的关联就像 CategoriesTable.php

$this->hasMany('Products', [
   'foreignKey' => 'category_id'
]);

ProductsTable.php

$this->belongsTo('Categories', [
     'foreignKey' => 'category_id',
     'joinType' => 'INNER'
]);
$this->hasMany('SellerProducts', [
    'foreignKey' => 'product_id'
]);

SellerProducts.php

$this->belongsTo('Products', [
    'foreignKey' => 'product_id',
    'joinType' => 'INNER'
]);

表关联

productscategory_id作为外键引用categories表并seller_products作为product_id外键引用products

seller_products有列stock

我想要做的是选择所有包含相关产品的类别,其在 Seller_products 中的库存> 0

这就是我所做的

$pros1 = $this->Products->Categories->find()
  ->where([
     'Products.SellerProducts.stock >' => 0
  ])
  ->contain([
     'Products.SellerProducts', 'Subcategories', 'ProductTypes'
  ]);

但它给出了错误

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Products.SellerProducts.stock' in 'where clause' 
4

0 回答 0