2.0.6上的Cakephp setaction呈现问题

2.0.6上的Cakephp setaction呈现问题,cakephp,cakephp-2.0,cakephp-2.1,Cakephp,Cakephp 2.0,Cakephp 2.1,Cakephp分页呈现问题。我正在使用CakePHP2.0.6。当我尝试从其他操作渲染页面时,这很好。但当我试图进入下一页时,问题就开始了 我有以下功能 public function admin_index() { //Function listing } 所有类型的用户(支持、员工等)都需要相同的功能。 所以我使用了setAction方法,如下所示 public function support_index() { $this-&

Cakephp分页呈现问题。我正在使用CakePHP2.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'));
但需要以下输出:

http://www.example.com/support/users/index/page:2
http://www.example.com/employee/users/index/page:2
问题是$this->setAction('admin_index');我想。。任何人都可以帮助你

采取行动

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

重定向是一个不同的术语,实际上,当它重定向到另一个操作时,它将自动成为该操作,这就是paginate不会更改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');
}
设置动作

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

重定向是一个不同的术语,实际上,当它重定向到另一个操作时,它将自动成为该操作,这就是paginate不会更改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');
}

我在下面的文件
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);

}

我在下面的文件
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);

}