разбиение cakephp на страницы с соответствующей моделью

#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'
            ),
        );