2012-01-04 16 views
0

私はかなり継承されたコードを扱っていますが、テーブルからイベントを取得するクエリがあります。イベントモデルは$hasOne = array('blocked');です。私の目標は、ブロックされたテーブルにエントリを持たないすべてのイベントのみを返すことです。 $ hasOneが設定されているにもかかわらず、ケーキはブロックされたイベントテーブルを別々に照会しているので、条件としてフィールドを使用することはできません。cakephp find()のhasOneはnull条件です。

クエリ自体は既に'contains' => ...の内部にあるため、'joins' => ...を使用して手動で結合を強制することはできません。更新

:ここでは、検索クエリは、それが今存在しているようです:

$params = array(
    'conditions' => array(
     'Restaurant.id' => $id, 
     'Restaurant.inactive' => 0, 'Restaurant.deleted' => 0, 
     'Restaurant.bkwindow <=' => (strtotime($criteria['Restaurant']['date']) - strtotime("today"))/86400 
    ), 
    'fields' => array(), 
    'contain' => array(
     'Experience' => array(
      'Experience_blocking' 
     ) 
    ) 
); 

私はExperience_blockingテーブルのエントリを持っていないだけのリターン結果に経験表を必要とします。エクスペリエンスは$ hasOne of Experience_blockingで設定されていますが、決して動作しません。

答えて

0

多くのコードを表示していないので、私はあなたの問題が何であるかを推測し、冗長にします。あなたはContainableビヘイビアを使ってあなたが望むことをすることはできません。

さらに詳しい説明はthis post

関連する問題