#cakephp #pagination
#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'
В чем проблема? Как я могу это сделать?
Комментарии:
1. ‘содержать’ — это не ‘присоединиться’, вы проверили раздел объединения документов?
2. Вы настроили соединения в моделях? Разбиение на страницы используется в контроллерах, поэтому, если модель для этого контроллера не имеет соединения, она не будет работать. Я также думаю, что ваш User.role должен иметь кавычки вокруг него, поскольку вы просите его искать строку.
Ответ №1:
Наконец, я использовал запрос объединения для этого.
$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'
),
);