我有3個表,categories
,products
和seller_products
及其關聯就像 CategoriesTable.phpCakePHP的3:多級聯想
$this->hasMany('Products', [
'foreignKey' => 'category_id'
]);
ProductsTable.php
$this->hasMany('SellerProducts', [
'foreignKey' => 'product_id'
]);
$this->belongsTo('Categories', [
'foreignKey' => 'category_id',
'joinType' => 'INNER'
]);
SellerProductsTable.php
$this->belongsTo('Products', [
'foreignKey' => 'product_id',
'joinType' => 'INNER'
]);
現在,在categories
的view
(site.com/categories/view/2
),我不得不從products
和sellerProducts
選擇所有產品數據,其中產品所屬類別ID,也存在於sellerProducts。 即,
products.category_id = $id AND sellerProducts.product_id = Products.id
有CakePHP中3任何簡單的方法來獲得結果呢?
編輯2
這就是我正在努力。在CategoriesController.php
$this->loadModel('Products');
$sellerProducts = $this->Products->find('all', [
'conditions' => [
'category_id' => $id
],
'joins' => [
'table' => 'SellerProducts',
'alias' => 'SellerProducts',
'type' => 'INNER',
'conditions' => [
'SellerProducts.product_id' => 'Products.id',
'stock >' => 0
]
]
]);
debug($sellerProducts);
foreach($sellerProducts as $a) {
debug($a);
}
上debug
view()
行動也只給出從Products
表,但沒有從SellerProducts
似乎是一個非常簡單的任務,你到底嘗試了什麼? – arilia
@arilia參見'edit 2' –