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

Different current page in one controller

我在我的 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));
}

当我在显示 "Table 1" 时转到下一页时,我转到下一页并且效果很好。但是,当我打开另一个页面时,"Table 2" 由同一控制器文件中的另一个函数生成,不幸的是,它也转到了第二页。

我应该怎么做才能有不同"pages indicators"?我的意思是,当我在"Table 1"上进入第三页时,我不想在进入"Table 2"时进入第三页。

提前致谢。我希望我清楚地提出了我的问题。

不要在控制器顶部设置分页选项,而是尝试删除那个 public $paginate 并在操作内设置所有选项,就像这样(第二个操作的方式类似)

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