2014-07-01 89 views
0

用戶有許多User_Questionaries。我想要具有特定問卷的分頁用戶。我使用了以下分頁。cakephp分頁與相關模型

$paginate = array(
    'conditions' => array(
     'User.role' => IWOA, 
     'UserQuestionary.questionary_id' => $id 
    ), 
    'recursive' => 1, 
    'limit' => 10, 
    'order' => array(
     'name' => 'asc' 
    ), 
    'contain' => array('UserQuestionary') 
); 

但它不是創建連接查詢。它顯示Unknown column UserQuestionary.questionary_id' in 'where clause'

這是什麼問題?我該怎麼做?

+2

「包含」不「加盟」,你有沒有檢查[加入部分(http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#加入表格)的文檔? – Nunser

+0

你有沒有在模型中設置連接? Paginate用於控制器,所以如果該控制器的模型沒有連接,它將無法工作。 我也認爲你的User.role應該在你要求它尋找一個字符串時引用它。 –

回答

0

最後我用join查詢來做到這一點。

$paginate = array(
      'conditions' => array(
       'Iwoa.role' => IWOA,     
      ), 
      'joins' => array(
       array(
        'alias' => 'UserQuestionary', 
        'table' => 'user_questionaries', 
        'type' => 'LEFT', 
        'conditions' => 'UserQuestionary.user_id = Iwoa.id AND UserQuestionary.questionary_id = ' . $id 
       ) 
      ), 
      'limit' => 10, 
      'order' => array(
       'name' => 'asc' 
      ), 
     );