CakePHP 3.x - Как передать конфигурацию пагинации напрямую вместо использования свойства контроллера `$ paginate`?

Приведенный ниже код работает:

// Somewhere in the Controller
public $paginate = [ 'maxLimit'=>2 ];
// In the method:
$query=$this->Model->find('all')->where(....);
$this->set('results',$this->paginate($query));

Однако я не хочу указывать $ paginate как общедоступный в контроллере. Я бы предпочел вообще не указывать. Я пытался переместить параметр maxLimit в метод, но делаю это неправильно. Как я могу изменить приведенный ниже код?

$query=$this->Model->find('all')->where(....);
$this->set('results',$this->paginate($query, ['maxLimit'=>2]));

person Annabelle    schedule 11.08.2016    source источник


Ответы (1)


Метод Controller::paginate() не работает Не беру второй аргумент. Вам нужен метод paginate() компонента Paginator, который доступен в вашем контроллере через свойство $this->Paginator.

$this->Paginator->paginate($query, ['maxLimit' => 2])

Смотрите также

person ndm    schedule 12.08.2016
comment
Вы знаете все ответы на мои вопросы :) Спасибо, что поделились своими знаниями. - person Annabelle; 12.08.2016