CakePHP:2.4.3
我尝试按照以下问题的答案中的说明进行操作,但它仅在子模型中应用该条件。(使用 hasMany 模型查找条件)
例如,我希望能够仅获取 ProductsCategory.category_id 为 2 的产品。现在它只过滤关联的模型并仍然返回我的所有产品。
编辑:第一次没有提到它,但我希望能够有多个条件。ProductsCategory.category_id == 2 AND ProductsTag.tag_id == 1。
我有这些模型:产品、类别和标签
产品有很多产品类别和产品标签
ProductsCategory 和 ProductsTag 如下:
产品分类
product_id (fk) | category_id (fk)
产品标签
product_id (fk) | tag_id (fk)
Model/Product.php(编辑以包含来自 Rikesh 的建议)
class Product extends AppModel {
public $primaryKey = 'product_id';
public $actsAs = array('Containable');
public $belongsTo = 'Supplier';
public $hasMany = array(
'ProductsCategory' => array(
'className' => 'ProductsCategory',
'foreignKey' => 'category_id',
'dependent' => true),
'ProductsTag' => array(
'className' => 'ProductsTag',
'foreignKey' => 'tag_id',
'dependant' => true
));
到目前为止,这是我尝试过的:
$this->Product->find('all',
array(
'recursive' => -1,
'contain' => array(
'ProductsCategory' => array(
'conditions' => array(
'ProductsCategory.category_id' => 2)
)
)
)
)
和
$this->Product->find('all',
array(
'joins' => array(
array(
'table' => 'products_categories',
'alias' => 'ProductsCategory',
'type' => 'inner',
'conditions' => array('ProductsCategory.category_id' => 2)
)
)
)
)