12

在 cakephp 视图中使用分页器助手时,它不记得为我的使用自定义的部分 url。

例如:

http://example.org/users/index/moderators/page:2/sort:name/dir:asc

这里的主持人是一个参数,可以帮助我按该类型进行过滤。但是按分页器链接将不包括此链接。

4

6 回答 6

11

秘诀是将这一行添加到您的视图中:

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

(我创建了这个问题和答案,因为这是一个被问得很多的问题,我一直不得不挖掘答案,因为我不记得了。)

于 2008-09-29T08:52:18.520 回答
4

要添加到上面 Alexander Morland 的答案,值得记住的是,CakePHP 1.3 中的语法已经改变,现在是:

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

这在 CakePHP 书的视图分页部分有进一步的描述。

于 2011-05-19T09:19:25.750 回答
0

$this->passedArgs 是从视图中执行此操作的首选方式。

于 2008-12-09T17:03:05.067 回答
0

你救了我!这对我帮助很大,谢谢。

我需要一种方法将最初通过 post ($this->data) 发送的参数传递给分页组件,因此我的自定义查询将继续使用它们。

这是我所做的:

在我看来,我把

$paginator->options(array('url'=>$this->data['Transaction']));

在 $paginator->prev('<< Previous ' 的东西之前。

这样做会使分页器上的下一个链接像“ .../page:1/start_date:2000-01-01%2000:00:00/end_date:3000-01-01%2023:59:59/payments_recieved:1 "

然后在我的控制器上,我只需要获取参数并将它们放在 $this->data 中,这样我的函数就会像往常一样继续:

foreach($this->params['named'] as $k=>$v)
{
    /*
     * set data as is normally expected
     */
    $this->data['Transaction'][$k] = $v;
}

就是这样。分页适用于我的自定义查询。:)

于 2008-12-28T21:38:59.147 回答
0

这里的选项是一个很好的线索......您还可以在 cakephp.org/view/166/Pagination-in-Views 查看有关 cakePHP 分页的更多信息

于 2009-06-01T17:52:09.527 回答
-1

使用该参数“url”,您只能将首选字符串放在 url 中的字符串分页之前。

如果我使用这种技术:

$urlpagin = '?my_get1=1&my_get2=2';
$paginator->options = array('url'=>$urlpagin);

我只获得:

url/controller/action/?my_get1=1&my_get2=2/sort:.../...

蛋糕丢失了我的获取参数

你有替代技术吗?

于 2009-06-21T16:42:46.207 回答