对于视图模板导航(即提供下一个/上一个URL),分页器是否可以被高压?
我目前有一个每页1行的分页器。我想修改URL以指向当前视图,但使用行PK而不是:page querystring参数。
在分页器URls中:
这可能吗?可以用这种方式重写分页URL吗?
答案 0 :(得分:0)
那应该是可能的,是的。首先,您需要一个使用名为page
的路径元素的适当路线,例如:
Router::connect('/model/view/:page', [
'controller' => 'Models',
'action' => 'view'
]);
这是必需的,因为在生成链接时,paginator helper将通过URL数组中名为page
的键设置页码。如果路径中没有具有该名称的元素,则该值将以查询字符串结尾。同样重要的是不要将page
元素标记为要传递,否则该值将滑入分页器助手生成的URL数组中,并且不再与您的路由匹配。
您需要做的另一件事是确保paginator组件可以访问所请求的页码。默认情况下,组件从请求查询字符串变量或分页选项中读取值。因此,在控制器中,您可以执行以下操作:
$page = $this->request->param('page');
if ($page !== null) {
$this->paginate['page'] = $page;
// or
$this->request->query['page'] = $page;
}
// ...
$result = $this->paginate();
对于更干燥的东西,你可以在自定义组件或扩展的分页器组件中移动它。
另见