我正在使用 cakePHP,当您单击不同的页面时,我正在尝试让分页器组件传递获取变量或传递的参数。我有各种不同的搜索输入选择器,它们“过滤”返回的结果。这适用于第一个视图,但是当我单击不同的页面时,它会显示所有结果。
我的分页器有以下设置:
// In my controller class:
public $paginate = array('maxLimit' => 10, 'paramType' => 'querystring');
// Within my action method:
$this->paginate = array('conditions' => array(...),
order => array('Model.field ASC'),
'limit' => 20
);
// Calling the paginator:
$results = $this->paginate('Model');
$this->set(compact('results'));
在我的视图文件中:
<div class="paging">
<?php
echo $this->Paginator->prev('< ' . __('previous'), array(), null, array('class' => 'prev disabled'));
echo $this->Paginator->numbers(array('separator' => ''));
echo $this->Paginator->next(__('next') . ' >', array(), null, array('class' => 'next disabled'));
?>
</div>
编辑: 据我了解,最好使用passedArgs,但我有点不确定如何做到这一点。我的 $this->passedArgs 没有返回任何结果,所以我在我的控制器示例中创建了传递的参数。我还将表单从 Get 更改为 Post:
$this->passedArgs["searchfield"] = $_POST["value"];
它现在在分页条中正确传递了passedArgs,但我不确定现在如何构建分页条件数组。在大多数情况下,用户不会选择默认值示例,其中一个过滤器是 date from 和 date to,然后是一个搜索输入框,如果我留下日期,它仍然会创建参数并且不返回任何结果,所以本质上是我的 url会是这样的:
http://localhost/site/controller/action/page:3/datefrom:0/dateto:0/searchFor:survey
有什么帮助吗?