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

时间:2015-01-16 23:29:10

标签: php cakephp

我在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”时,我不想进入第三页。

提前致谢。我希望我能清楚地表达我的问题。

1 个答案:

答案 0 :(得分:0)

而不是在控制器顶部设置分页选项,尝试删除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'));
}