我正在尝试使用自定义网址实现分页,当我尝试分页到下一页时,我收到以下错误。
请求的地址' / adminuser / userlist / page:2'在这台服务器上找不到。
此处adminuser是admin用户的名称,userlist是获取此adminuser下所有用户的方法。
网址将如下http://domain.com/adminuser/userlist
这是我的代码
In view:
<?php $this->paginator->options(array('url' =>
array('path'=>$this->params['path']))); ?>
<div class="pagination">
<ul>
<li class="prevnext disablelink">
<?php echo str_replace('/users/','',$this->paginator->prev('« Prev'));?>
<li>
<?php echo str_replace('/users/','',$this->paginator->numbers());?>
</li>
<li class="prevnext">
<?php echo str_replace('/users/','',$this->paginator->next('Next »'));?>
</ul>
</div>
routes.php文件
Router::connect('/:sluguser/:action', array('controller' => 'users', 'action' => 'userlist'),array('pass' => array('sluguser')));
答案 0 :(得分:0)
对于分页,使用默认'paramType' => 'named'
,您需要扩展您的路线以接受page
参数(以及sort
和direction
)。在routes.php
中,您可以添加以下内容:
// Parse only default parameters used for CakePHP's pagination:
Router::connectNamed(false, array('default' => true));
// the route to your controller action and wildcard (*) for the possible named parameter
Router::connect('/:sluguser/:action/*', array('controller' => 'users', 'action' => 'userlist'),array('pass' => array('sluguser')));
顺便说一下。正如我发现最近命名的参数已被弃用且完全removed in CakePHP 3.x,因此请考虑使用$this->paginate['paramType'] = 'querystring';
。然后它将在没有上述其他路线的情况下工作。