如何在CakePHP(1.3)应用程序中更改命名参数?

如何在CakePHP(1.3)应用程序中更改命名参数?,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,我正在构建一个使用分页的cakePHP应用程序。在某一点上,我需要控制器检查某些条件,如果满足这些条件,则重置为分页的第一页 换句话说,假设url是 在电影控制器中,我有: function index() { if(conditions are met) $this->params['named']['page'] = 1; } 其思想是,如果满足条件,则分页器将显示结果的第一页,而不是第6页 我已经检查了条件是否满足,并且参数['named']['pag

我正在构建一个使用分页的cakePHP应用程序。在某一点上,我需要控制器检查某些条件,如果满足这些条件,则重置为分页的第一页

换句话说,假设url是

在电影控制器中,我有:

  function index() {
    if(conditions are met)
       $this->params['named']['page'] = 1;
  }
其思想是,如果满足条件,则分页器将显示结果的第一页,而不是第6页

我已经检查了条件是否满足,并且参数['named']['page']已更改,但是分页器似乎忽略了它并显示了第6页

我做错了什么


谢谢

好的,有两种方法:

1更改参数:(您很接近)

这个解决方案的问题是,即使用户真的在搜索第1页,URL也会保持不变(例如
../films/index/page:6
),这可能会造成混乱

2重定向到右侧页面

function index() {
    if(conditions are met)
       $this->request->params['named']['page'] = 1;
    $this->set('films', $this->paginate()); 
}
function index() {
    if(conditions are met)
       $this->redirect(array('page' => 1));
    $this->set('films', $this->paginate()); 
}
问题是您必须执行重定向;)


希望有帮助。

您应该经常提到您正在使用的cakephp版本谢谢!我会试试看——我想我会选择第二种方式!感谢您的帮助。$this->request->params?;)她似乎使用1.3