我有一个从数据库中检索到的零件表和一个带有选择标签的表格,其中列出了PartTypes和a [刷新]按钮。这些用于过滤表格,仅显示与所选类型匹配的部分 该表针对性能进行了分页。当我开始第1页时,我可以成功过滤我的数据表 使用我的选择和刷新按钮,但如果我通过Paginator离开第1页,并尝试 使用新的PartType刷新页面(而不是全部可见),我收到以下错误
错误:在此服务器上找不到请求的地址'/ product / parts / index / page:2'。
我已经通过PaginatorComponent和PaginatorHelper文档而无法看到如何操作 在过滤我的数据之前重置页面。我错过了什么?
/Controller/PartsController.php
public $paginate = array(
'limit' => 12,
'page' => 1,
'order' => array('Part.name' => 'asc' )
);
public function index() {
// ...
// array $qcond holds the query properties for filtering parts
if (count($qcond) > 0)
$this->paginate['conditions'] = $qcond;
// ...
$this->set('parts', $this->paginate());
}
应用程序/视图/零件/ index.ctp
<?php
echo $this->Paginator->prev(__('«'), array('tag' => 'li'), null, array('tag' => 'li','class' => 'disabled','disabledTag' => 'a'));
echo $this->Paginator->numbers(array('separator' => '','currentTag' => 'a', 'currentClass' => 'active','tag' => 'li','first' => 1));
echo $this->Paginator->next(__('»'), array('tag' => 'li','currentClass' => 'disabled'), null, array('tag' => 'li','class' => 'disabled','disabledTag' => 'a'));
?>
问题解决了:问题不在Paginator中,而是在Form中。不得不手动将表单的url设置为不使用/ page:2,而不是让CakePhp自己推断出url。
答案 0 :(得分:0)
在Cakephp 2.x中,您可以通过在Controller中使用以下代码来重置页面:
$this->request->params['named']['page']=1;