cakephp 2.0 paginator问题

时间:2012-06-13 12:33:55

标签: cakephp pagination cakephp-2.0 paginator

我目前正在尝试在两种不同型号上设置分页。 在Controller类中,我正在做以下事情:

    var $paginate = array(
        'Model1' => array('limit' => 10, 'recursive' => 0, 'model' => 'Model1, 'order' => array('field1' => 'ASC'), 'paramType' => 'querystring'),
        'Model2' => array('limit' => 10, 'recursive' => 0, 'model' => 'Model2', 'order' => array('field2' => 'ASC'), 'paramType' => 'querystring')
    );

    function view($id = null) {

        // ...

        $models1 = $this->paginate('Model1', array('Model1.model_id => $id));        
        if ($models1) {
            $this->set('models1', $models1);
        }
        $models2 = $this->paginate('Model2', array('Model2.model_id => $id));
        if ($models2) {
            $this->set('models2', $models2);
        }
    }

在视图中,使用

生成链接
    <?php echo $this->Paginator->numbers(array('model' => 'Model1')); ?>
    <?php echo $this->Paginator->numbers(array('model' => 'Model2')); ?>

结果,我得到了正确的页数,但链接错了。

  1. 忽略id,即取代controller/action/id?page= ...而不是controller/action?page= ...
  2. 链接sort=Model1.field1&direction=ASC的这一部分也无效。 我可以使用sort=field1&direction=ASC打开该页面。但是,如果对第一个或第二个模型进行排序,应如何区分?
  3. BTW,使用CakePHP 1.3时,所有这些都很有效。

1 个答案:

答案 0 :(得分:0)

您已对两个电话分页Model1,第二个应该是:

$models2 = $this->paginate('Model2', ...