1

Cakephp 分页渲染问题。我正在使用 cakephp 2.0.6。当我尝试从其他操作呈现页面时,它很好。但是当我尝试转到下一页时,问题就开始了

我有以下功能

   public function admin_index() 
   {
       //Function listing 
   }

所有类型的用户(支持、员工等)都需要相同的功能。所以我使用了setAction方法如下

public function support_index() 
   {
        $this->setAction('admin_index');
        $this->render('admin_index');
   }

我的分页代码如下:

    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'));

但是当我尝试转到下一页时,URL如下

http://www.example.com/support/users/admin_index/page:2
http://www.example.com/employee/users/admin_index/page:2

但是需要以下输出:

http://www.example.com/support/users/index/page:2
http://www.example.com/employee/users/index/page:2

问题是 $this->setAction('admin_index'); 我想..任何人都可以帮助赞赏

4

2 回答 2

1

我在以下文件中进行了更改lib/Cake/Controller/Controller.php

在 setAction 方法中所做的更改现在运行良好。特别是问题出在 2.0.6

public function setAction($action) {
    $this->request->params['action'] = $action; //Commented this Line 
    $this->view = $action; //Commented this Line


    $this->request->action = $action; // Added this Line
    $args = func_get_args();
    unset($args[0]);
    return call_user_func_array(array(&$this, $action), $args);

}
于 2012-08-29T11:39:12.180 回答
0

设置动作

在内部将一个动作重定向到另一个动作。与 Controller::redirect() 不同,不执行另一个 HTTP 请求;

重定向是一个不同的术语,实际上,当它重定向到另一个动作时,它会自动变成那个动作,这就是为什么分页不会改变 url。

您可以使用以下代码,而不是使用 setAction:

public function admin_index() 
{
    $this->set('data',$this->__paginatedata());

}

function __paginatedata(){
    $this->paginate = array('limit'=>5);
    $this->Model->recursive = 0;
    return $this->paginate();
}

public function support_index() 
{
    $this->set('data',$this->__paginatedata());
    $this->render('admin_index');
}
于 2012-08-29T05:33:13.310 回答