【发布时间】:2016-04-21 23:49:22
【问题描述】:
在 CakePHP 1.3 中,我可以通过添加参数page:last 转到最后一个分页页面。
我尝试在 CakePHP 3.0 中使用?page=last,但它不起作用。我怎样才能做到这一点?
【问题讨论】:
标签: cakephp pagination cakephp-3.0
在 CakePHP 1.3 中,我可以通过添加参数page:last 转到最后一个分页页面。
我尝试在 CakePHP 3.0 中使用?page=last,但它不起作用。我怎样才能做到这一点?
【问题讨论】:
标签: cakephp pagination cakephp-3.0
您提到的功能已在 CakePHP 2.0 中删除。
在 CakePHP 3.x 中,要从视图中创建链接,您可以调用
$this->Paginator->last($last = 'last >>', $options =[])
要从控制器中获取最后一页,您可以访问以下属性:
$this->request->params['paging']['pageCount']
编辑
接受page:last 的一种可能的解决方法是在您的操作开始时添加以下内容:
public function index() {
// detect page:last
if (!empty($this->request->params['named']['page'] && @$this->request->params['named']['page']=='last')) {
$this->Paginator->paginate();
$this->request->params['named']['page']=$this->request['paging'][$this->modelClass]['pageCount'];
}
//rest of code for action
$this->set('results', $this->Paginator->paginate());
}
您必须致电$this->paginate() 两次,因此并不理想。
lib/Cake/Controller/Component/PaginatorComponent.php,使其支持page:last。有关详细信息,请参阅
【讨论】: