在 cakephp 视图中使用分页器助手时,它不记得为我的使用自定义的部分 url。
例如:
http://example.org/users/index/moderators/page:2/sort:name/dir:asc
这里的主持人是一个参数,可以帮助我按该类型进行过滤。但是按分页器链接将不包括此链接。
在 cakephp 视图中使用分页器助手时,它不记得为我的使用自定义的部分 url。
例如:
http://example.org/users/index/moderators/page:2/sort:name/dir:asc
这里的主持人是一个参数,可以帮助我按该类型进行过滤。但是按分页器链接将不包括此链接。
秘诀是将这一行添加到您的视图中:
$paginator->options(array('url'=>$this->passedArgs));
(我创建了这个问题和答案,因为这是一个被问得很多的问题,我一直不得不挖掘答案,因为我不记得了。)
要添加到上面 Alexander Morland 的答案,值得记住的是,CakePHP 1.3 中的语法已经改变,现在是:
$this->Paginator->options(array('url' => $this->passedArgs));
这在 CakePHP 书的视图分页部分有进一步的描述。
$this->passedArgs 是从视图中执行此操作的首选方式。
你救了我!这对我帮助很大,谢谢。
我需要一种方法将最初通过 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;
}
就是这样。分页适用于我的自定义查询。:)
这里的选项是一个很好的线索......您还可以在 cakephp.org/view/166/Pagination-in-Views 查看有关 cakePHP 分页的更多信息
使用该参数“url”,您只能将首选字符串放在 url 中的字符串分页之前。
如果我使用这种技术:
$urlpagin = '?my_get1=1&my_get2=2';
$paginator->options = array('url'=>$urlpagin);
我只获得:
url/controller/action/?my_get1=1&my_get2=2/sort:.../...
蛋糕丢失了我的获取参数
你有替代技术吗?