CakePHP paginator не нумерация страниц - PullRequest
0 голосов
/ 15 сентября 2011

У меня есть пагинатор следующим образом:

    var $paginate = array(
        'order'=>array('ReleaseServer.server_environment'=>'ASC',
                           'ReleaseServer.server_name'=>'ASC'),
        'joins'=>array(
            array(
                'table' => 'release_server_to_components',
                'alias' => 'ReleaseServerToComponent',
                'type' => 'LEFT',
                'foreignKey' => false,
                'conditions'=> array('ReleaseServer.id = ReleaseServerToComponent.release_server_id')
            ),
            array(
                'table' => 'release_components',
                'alias' => 'ReleaseComponent',
                'type' => 'LEFT',
                'foreignKey' => false,
                'conditions'=> array('ReleaseServerToComponent.release_component_id = ReleaseComponent.id')
            )
        ),
        'group'=>array('ReleaseServer.id'),
        'contain' => array(
                'ReleaseServerToComponent' => array(
                        'ReleaseComponent' => array(
                            'Release'
                            )
                        )
                ),
        'limit' => 25,
    );

Затем в своей функции контроллера я делаю следующее:

$this->set('allServers', $this->paginate('ReleaseServer', $conditions));

Где $conditions - некоторые дополнительные условия для запроса.

Как вы видите выше, я установил ограничение на 25.

Однако в базе данных 29 записей, но на странице отображается только 25, а на странице написано, что есть только одна страница.

но , когда человек нажимает на один из заголовков столбцов, чтобы упорядочить их, некоторые строки, которых раньше не было, волшебным образом появляются, а другие исчезают. С чего бы это?

Если вам нужна другая информация, пожалуйста, дайте мне знать

UPDATE

Теперь я вижу, что проблема заключается в group части переменной paginate, но она мне нужна для того, чтобы сделать так, чтобы я не получил несколько строк одного и того же.

Как мне это исправить?

1 Ответ

0 голосов
/ 15 сентября 2011

Я решил это, добавив новую функцию paginateCount() в мою модель:

function paginateCount($conditions = null, $recursive = 0, $extra = array())
{
     $count = $this->find('count', array(
        'fields' => 'DISTINCT ReleaseServer.id',
        'conditions' => $conditions
    ));
    return $count;
}
...