路线分页Cakephp 3

时间:2015-06-27 07:41:55

标签: php cakephp pagination routes cakephp-3.0

我正在使用CakePHP 3,我希望对我的用户进行分页。 但是,当我点击第二页时,网址看起来像/users?page=2,我希望:/users/2

我在routes.php中创建了这条路线:

$routes->connect('/users/:page', ['controller' => 'users', 'action' => 'index'], ['page' => '[0-9]+']);

在" prev"之前的Users / index.ctp中按钮我放了:

<?php
      $this->Paginator->options([
              'url' => [
              'controller' => 'users',
              'action' => 'index'
          ]
      ]);
 ?>

现在当我点击第2页时,/users/2打开,我收到此错误消息(RuntimeException):

Unable to locate an object compatible with paginate.

我错过了什么或者我犯了什么错误吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

PaginatorHelper内置了url格式,即使用?page = n。它还会进行排序,例如用户?page = 2&amp; sort = user_id&amp; direction = asc。您的/ users / {page}格式无法处理排序。

如果您真的想要坚持使用/ users / {page},那么您将不得不重写PaginatorHelper。

答案 1 :(得分:0)

试试这个 在你的控制器旁边有paginator组件。它对我有用

$this->Paginator->paginate('Users')

自定义网址enter code here 你需要实现索引动作

public function index($page = null){
$this->Paginator->settings = ['limit' => 15, 'page' => $page];
$this->set('users', $this->Paginator->paginate('Users'));
}