Пользовательский метод поиска в нумерации страниц - PullRequest
0 голосов
/ 05 июня 2018

Код контроллера:

public $paginate = [
        'fields' => ['Subscribes.id'],
        'limit' => 1,
        'order' => [
            'Subscribes.created' => 'desc'
        ]
    ];

Код метода контроллера: Здесь $ type является переменной, значение может быть целым числом 1,2 3 и т. Д.

        $customFinderOptions = [
            'type' => $type
        ];

        $this->paginate = [
            'finder' => [
                'typed' => $customFinderOptions
            ]
        ];

        $contacts = $this->paginate($this->Subscribes);

Код модели:

public function findTyped(Query $query, array $options) {

        $type = $options['type'];
        return $query->where(['type' => $options['type']]);
    }

Ошибка: как видите, ограничение установлено на 1, но возвращает все записи.Это означает, что нумерация страниц не работает с пользовательским методом поиска.

1 Ответ

0 голосов
/ 05 июня 2018

Это не работает, потому что вы перезаписываете переменную $paginate.Установите его один раз в действии контроллера, используйте array_merge() или обновите только один ключ:

$this->paginate["finder"] = [...];
...