2011-04-05 57 views
0

我在這裏做錯了什麼?加入和CakePHP時出錯

 $sub_data = $this->Subscriber->find('all', array(
      'joins' => array(
       'table' => 'subtypes', 
       'alias' => 'Subtype', 
       'type' => 'LEFT', 
       'conditions' => array(
        'Subtype.id = Subscriber.plan', 
       ) 
      ), 
      'conditions' => array(
       'Subscriber.plan' => $plan['Subtype']['id'], 
       'Subscriber.authcode !=' => '', 
       'Subscriber.subended' => '0000-00-00 00:00:00', 
       'Subtype.authorize_trial_only' => '1', 
      ) 
     )); 

不知何故,最終的聲明沒有被正確生成。這是一部分,我得到一個SQL錯誤:

... FROM subscribers AS Subscriber subtypes Subtype LEFT Array WHERE Subscriber . plan = '10' AND Subscriber . authcode != '' AND Subscriber . subended = '0000-00-00 00:00:00' AND Subtype . authorize_trial_only = '1' AND ...

+0

順便說一句,$ plan ['Subtype'] ['id']是一個字符串 – Raisen 2011-04-05 18:35:25

回答

1

應該是

'conditions' => array(
       'Subtype.id' => 'Subscriber.plan', 
      ) 

還是我只是瘋了嗎?

編輯:

你也許需要在裏面添加陣列()的另一個層面?即

'joins' => array(array ('table' => ... 
+0

我已經試過了。我在這裏的語法如下: http://book.cakephp.org/view/1047/Joining-tables – Raisen 2011-04-05 18:33:47

+0

嗯,是的,你看起來像你一直非常小心你的語法,這使得它很奇怪。看起來SQL只是連接你的連接數組中的所有東西,而不是對它們做任何明智的事情。 Curiouser和curiouser ... – thesunneversets 2011-04-05 18:46:00

+0

查看控制器類,這是第一個代碼示例:http://bakery.cakephp.org/articles/nate/2009/01/21/quick-tip-doing-ad-hoc-joins-在模型中發現...在那個模型中,看起來像是有一個額外的數組嵌套繼續進行着呢? – thesunneversets 2011-04-05 18:52:12