为什么当我转到第2页时,paginator还没有记住我的自定义参数?
-
02-07-2019 - |
题
在cakephp视图中使用paginator helper时,它不会记住为我的用途定制的url部分。
例如:
http://example.org/users/index/moderators/page:2/sort:name/dir:asc
此处主持人是一个帮助我按该类型过滤的参数。但是按下分页符链接将不包含此链接。
解决方案
要添加Alexander Morland上面的答案,值得记住CakePHP 1.3中的语法已经改变,现在是:
$this->Paginator->options(array('url' => $this->passedArgs));
这在分页视图。
其他提示
秘诀是将这一行添加到您的视图中:
<强> $分页程序 - GT <!>;选项(<!>阵列( 'URL'= GT; $这 - GT <!>; passedArgs)); 强>
(我创建了这个问题和答案,因为这是一个很受欢迎的问题,我不得不挖掘答案,因为我无法记住它。)
$ this - <!> gt; passedArgs是从视图中执行此操作的首选方法。
你救了我!这对我帮助很大,谢谢。
我需要一种方法将我最初通过post发送的参数($ this - <!> gt; data)传递给分页组件,因此我的自定义查询将继续使用它们。
这是我做的:
在我看来我把
$paginator->options(array('url'=>$this->data['Transaction']));
在$ paginator之前- <!> gt; prev('<!> lt; <!> lt; Previous'stuff。
这样做使得paginator上的下一个链接就像<!>一样; ... /页面:1 / START_DATE:2000-01-01%2000:00:00 / END_DATE:3000-01-01%2023:59:59 / payments_recieved:<!> 1 QUOT;
然后在我的控制器上我只需要获取参数并将它们放在$ this - <!> gt;数据中,这样我的函数就会像往常一样继续:
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中的字符串分页之前。
如果我使用这个tecnique:
$urlpagin = '?my_get1=1&my_get2=2';
$paginator->options = array('url'=>$urlpagin);
我只获得:
url/controller/action/?my_get1=1&my_get2=2/sort:.../...
和蛋糕失去了我的获取参数
你有替代tecnique吗?