Cakephp habtm条件很深

时间:2012-05-21 16:17:18

标签: cakephp cakephp-2.1

假设您有这些模型关系:

提供HABTM类别

如何构建查找条件以查找至少包含一个商品的所有类别。在同一时间,要约应为Offer.enabled => 1.因此,找到至少有一个已启用要约的所有类别。检查报价模型的条件有几个,但一旦我可以检查启用,我想我将能够检查任何其他字段。

我可以将habtm模型绑定到Category,但在这种情况下,我无法检查Offer.enabled条件。也许以某种方式使用包含? sql查询将是:

SELECT DISTINCT Category.nome from categories as Category
LEFT JOIN categories_offers AS CategoriesOffer
ON (CategoriesOffer.category_id = Category.id)
LEFT JOIN offers as Offer ON (CategoriesOffer.offer_id = Offer.id)
WHERE Offer.enabled = 1

谢谢

1 个答案:

答案 0 :(得分:0)

使用关系定义中的conditions键仅在Offer.enabled = 1时设置关系。取自book。例如:

class Category extends Model {
    public $hasAndBelongsToMany = array(
        'Offer' => array(
            'conditions' => array( 'Offer.enabled' => 1 )
        )
    );
}