Разница между $ this-> paginate () и $ this-> Paginator-> paginate () - PullRequest
0 голосов
/ 21 декабря 2018

Помимо синтаксиса, в чем разница между использованием $this->paginate() и $this->Paginator->paginate() в CakePHP 2?

Есть ли какое-либо преимущество при использовании одного над другим?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Controller::paginate() метод использует свойство Controller::$paginate.

Контроллер :: $ paginate был специально удален в пользу использования PaginatorComponent.

*Метод 1010 *

PaginatorComponent::paginate() использует свойство PaginatorComponent::$paginate.Если вам нужно использовать разбиение на страницы в нескольких методах на одном контроллере и вам нужно использовать разные настройки разбиения на страницы, тогда лучше разбить на страницы с использованием компонента.

В любом случае

Не смешивать пагинацию контроллера и компонента .

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

0 голосов
/ 21 декабря 2018

Это с открытым исходным кодом, вы можете посмотреть :

public function paginate($object = null, $scope = array(), $whitelist = array()) {
    return $this->Components->load('Paginator', $this->paginate)->paginate($object, $scope, $whitelist);
}

Так что контроллер paginate() - это просто оболочка.Преимущество заключается в том, что метод контроллера загружает Paginator компонент, поэтому ваш контроллер может пропустить явную загрузку.

...