cakePHP分页没有传递args

时间:2012-05-02 11:56:39

标签: cakephp components paginator

我正在使用cakePHP,当我点击进入不同的页面时,我正试图让paginator组件传递get变量或者passargs。我有各种不同的搜索输入选择器,它们“过滤”返回的结果。这适用于第一个视图,但是当我点击其他页面时,它会显示所有结果。

我的分页器有以下设置:

// 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>

修改 根据我的理解,最好使用passArgs,但我不知道如何做到这一点。我的$ this-&gt; passedArgs没有返回任何结果,所以我在我的控制器示例中创建了传递的参数。我还将表格从“改为发布”改为:

 $this->passedArgs["searchfield"] = $_POST["value"];

它现在在分页条中正确传递passArgs,但我不确定如何构建分页条件数组。在大多数情况下,用户不会选择默认值示例,其中一个过滤器是日期和日期,然后是搜索输入框,如果我离开日期它仍然会创建争论者而不返回任何结果所以本质上我的网址会是这样的:

 http://localhost/site/controller/action/page:3/datefrom:0/dateto:0/searchFor:survey

有任何帮助吗?

1 个答案:

答案 0 :(得分:2)

您可以通过以下方式传递视图中的所有参数:

$this->Paginator->options(array('url' => $this->passedArgs));

或手动分配参数:

$this->Paginator->options(array('url' => array("0", "1")));

befor echoing paginator

有关更多示例,请参阅CakePHP Cookbook