0

これらのモデル関係があるとします:

提供 HABTM カテゴリ

少なくとも 1 つのオファーがあるすべてのカテゴリを検索するには、検索条件をどのように構築しますか? 同時に、オファーは Offer.enabled => 1 である必要があります。したがって、少なくとも 1 つの有効なオファーを持つすべてのカテゴリを見つけます。オファーモデルで確認する条件はいくつかありますが、有効になっていることが確認できれば、他のフィールドも確認できると思います。

habtm モデルを Category にバインドできましたが、この場合、Offer.enabled 条件を確認できません。多分どういうわけかcontainableを使用していますか?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

ありがとうございました

4

1 に答える 1

0

の場合にのみ、関係定義でキーを使用conditionsして関係を設定しますOffer.enabled = 1より。例えば:

class Category extends Model {
    public $hasAndBelongsToMany = array(
        'Offer' => array(
            'conditions' => array( 'Offer.enabled' => 1 )
        )
    );
}
于 2012-05-22T09:41:38.277 に答える