0

我目前正在尝试在两种不同的模型上设置分页。在 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. 但是如何区分第一个或第二个模型排序呢?

顺便说一句,所有这些在使用 CakePHP 1.3 时都运行良好。

4

1 回答 1

0

您已经Model1对这两个电话进行了分页,当然第二个电话应该是:

$models2 = $this->paginate('Model2', ...
于 2012-06-13T17:36:50.233 回答