Php 一个控制器中的不同当前页

Php 一个控制器中的不同当前页,php,cakephp,Php,Cakephp,我在CakePHP页面上使用分页,它工作得很好,但是我在一个控制器文件中有几个由不同函数生成的页面,这是一个麻烦的问题 假设我有两个表,其中有数百个条目,我的分页器将它们分开,并在一个页面上显示15个条目: public $paginate = array( 'Table1' => Array( 'order' => array('Table1.id' => 'desc'), 'limit' => 15 ), 'Ta

我在CakePHP页面上使用分页,它工作得很好,但是我在一个控制器文件中有几个由不同函数生成的页面,这是一个麻烦的问题

假设我有两个表,其中有数百个条目,我的分页器将它们分开,并在一个页面上显示15个条目:

public $paginate = array(
    'Table1' => Array(
        'order' => array('Table1.id' => 'desc'),
        'limit' => 15
    ),
    'Table2' => Array(
        'order' => array('Table2.id' => 'asc'),
        'limit' => 15
    )
);
和此控制器文件中的函数:

public function showTable1() {
    $this->set('table', $this->paginate('Table1'));
}
public function showTable2() {
    $this->set('table', $this->paginate('Table2));
}
当我在显示“表1”的同时进入下一页时,我进入下一页,它运行良好。但是,当我打开另一个页面时,另一个函数从同一个控制器文件生成了“表2”,不幸的是,它也转到了第二个页面

我应该怎么做才能拥有不同的“页面指示器”?我的意思是,当我进入“表1”的第三页时,我不想进入“表2”的第三页


提前谢谢。我希望我清楚地说明了我的问题。

不要在控制器顶部设置分页选项,而是尝试删除该
public$paginate
并在操作中设置所有选项,如下所示(第二个操作的方式与此类似)


设置的
视图变量被覆盖。同上@LozCheroneツ : 您正在覆盖变量;视图中的单个变量(
$table
)只能保存一个值。另请参见:。但我不会在一个视图中使用这两个控制器。它们是分开使用的。这是可行的,但每当我进入表1或表2页面时,我都会从表的第一个子页面开始查看数据。我认为多亏了CakePHP paginator,我应该从上次访问的子页面开始查看。我的意思是,现在代码失去了记忆上次访问的子页面的功能。
public function showTable1() {
    $options = array(
        'conditions' => array(
            'Table1.id' => whatever
        ),
        'fields' => array(
            'Table1.id'
        ),
        'order' => array(
            'Table1.id' => 'DESC'
        ),
        'limit' => 15
    );

    $this->Paginator->settings = $options;
    $table = $this->Paginator->paginate('Table1');

    $this->set(compact('table'));
}