我正在使用 CakePHP 3,我想为我的用户分页。
但是,当我点击第二页时,URL 看起来像 /users?page=2
,我期望:/users/2
。
我在 routes.php 中创建了这条路线:
$routes->connect('/users/:page', ['controller' => 'users', 'action' => 'index'], ['page' => '[0-9]+']);
在 Users/index.ctp 中,我在“prev”按钮之前放置:
<?php
$this->Paginator->options([
'url' => [
'controller' => 'users',
'action' => 'index'
]
]);
?>
例如,现在当我单击第 2 页时,/users/2
打开并且我收到此错误消息 (RuntimeException):
Unable to locate an object compatible with paginate.
我是否遗漏了什么或哪里出错了?
感谢您的帮助。
最佳答案
PaginatorHelper 内置了 url 格式,即使用 ?page=n。它还会进行排序,例如 users?page=2&sort=user_id&direction=asc。您的/users/{page} 格式不处理排序。
如果您真的想坚持使用/users/{page},则必须重写 PaginatorHelper。
关于php - 路由分页 Cakephp 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31086370/