2014-07-01 26 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' 
      ), 
     );