2014-02-19 4 views
0

У меня есть некоторые проблемы с странную PAGINATION, код:CakePHP пагинация

$this->Paginator->settings = array(
    'Visit' => array(
     'limit' => 10 
    ) 
); 
$visits = $this->Paginator->paginate('Visit'); 
echo count($visits); 

И подсчитывать дают мне: страница 1 = 0, страница 2 = 6, стр 3 = 10, стр 4 = 7, ... Почему? Я думал, что идентификатор paginator делает что-то вроде:

SELECT * FROM visits LIMIT 10 OFFSET pageNumber 

У меня есть 4 realtions с таблицами посещений, может быть, это проблема?

+0

Работает отлично для меня, я получаю то же число на 'count ($ посещениях)' для каждой страницы, а sql - 'SELECT * FROM посещает LIMIT {$ offset}, {$ limit}'. Это просто вопрос «Я задаюсь вопросом»? Или это дает вам ошибки (например, различное количество посещений на страницу или что-то в этом роде)? Если это дает вам реальную ошибку, не могли бы вы рассказать об этом? – Nunser

+0

Это дает мне ошибки ... У меня разные оценки для зрителей на каждой странице. edit: Я имею в виду разные = это не 10 визитеров, например. для 16 страниц у меня одна страница с десятью посещениями – tommy

+0

try $ посещения = $ this-> paginate(); а не $ visit = $ this-> Paginator-> paginate ('Visit'); – Fury

ответ

0

Я нашел его. Кто-то удалял из некоторых элементов функцию afterFind в классе AppModel. Я проверил класс VisitModell, но не проверял класс, черт возьми ... так глупо. Так жаль тратить свое время.

0

попробовать это

$this->paginate = array('conditions'=>array(
    'all conditions'..., 
    ), 
    'limit' => 10, 
    'recursive'=> 0 or -1 
)); 
$this->Paginator->settings = $this->paginate; 
$visits = $this->Paginator->paginate('Visit'); 
echo count($visits); 
+0

К сожалению, все же у меня есть тот же результат – tommy

+0

Вы хотите назначить свои условия только на разбивку на страницы? – Fury

Смежные вопросы