CakePHP afterFind () убивает общее количество страниц - PullRequest
0 голосов
/ 06 января 2012

Я использую вмещаемую операцию разбивки на страницы и afterFind() для удаления пустых массивов в моих записях, но это создает проблему при разбивке на страницы.

Это функция afterFind:

function afterFind($results, $primary=false) {

        if ($primary == true) {
            foreach ($results as $key => $value) {
                if (empty($value['Orderstatus'])) { 
                    unset($results[$key]); //removing record if the orderstatus is empty
                }
            }
        }
        return $results;
    }

Всего из четырех записей в выборке я удалил только один пустой массив (запись),

всего записей в базе данных 4
удаленные записи, использующие после поиска 1

оставшиеся записи 3
Пагинатный предел 2

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

Ответы [ 2 ]

0 голосов
/ 06 января 2012

Почему бы не сработать условие для запроса, чтобы записи без OrderStatus не возвращались для начала?

0 голосов
/ 06 января 2012

Кажется, вы сбросили строки, которые нужны для нумерации страниц. Я предлагаю вам сделать свою собственную функцию разбивки на страницы для модели (переопределяя нумерацию по умолчанию cakePHP). Смотрите пример ссылки здесь: Принудительный счетчик пагинатов

Надеюсь, это поможет в решении вашей проблемы.

...