2012-05-21 60 views
0

假設你有這些型號的關係:CakePHP的深HABTM條件

發售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 

謝謝

回答

0

使用conditions關鍵在你們的關係定義設置的關係了只有Offer.enabled = 1。取自book。例如:

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

謝謝。只有當我總是需要這個條件時,這才行。事實是情況總是在變化。但是,我能夠使用可鏈接行爲獲得結果。 – slacky