$ this-> paginate()和$ this-> Paginator-> paginate()之间的区别

时间:2018-12-21 07:47:15

标签: cakephp cakephp-2.0

除了语法,在CakePHP 2中使用$this->paginate()$this->Paginator->paginate()有什么区别?

使用一个相对于另一个有什么优势吗?

2 个答案:

答案 0 :(得分:4)

open source, you can take a外观:

.space 3

因此,控制器的public function paginate($object = null, $scope = array(), $whitelist = array()) { return $this->Components->load('Paginator', $this->paginate)->paginate($object, $scope, $whitelist); } 只是一个包装器。好处是控制器方法似乎可以加载paginate()组件,因此您的控制器可以跳过显式加载。

答案 1 :(得分:1)

Controller::paginate()方法使用Controller::$paginate属性。

  

Controller :: $ paginate专门为了使用PaginatorComponent而被删除。

https://github.com/cakephp/cakephp/pull/857#issuecomment-8670695

PaginatorComponent::paginate()方法使用PaginatorComponent::$paginate属性。如果您需要在同一控制器中以多种方法使用分页,并且需要使用不同的分页设置,那么最好使用该组件进行分页。

在任何情况下,Don’t mix controller and component pagination

  

...如果混合使用控制器的分页设置并调用分页组件,则由于两个不同的部分,它很容易适得其反   设置并不总是像您期望的那样合并