除了语法,在CakePHP 2中使用$this->paginate()
和$this->Paginator->paginate()
有什么区别?
使用一个相对于另一个有什么优势吗?
答案 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。
...如果混合使用控制器的分页设置并调用分页组件,则由于两个不同的部分,它很容易适得其反 设置并不总是像您期望的那样合并