我是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'
]);
表关联
products
表category_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'