我目前正在尝试在两种不同的模型上设置分页。在 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')); ?>
结果,我得到了正确的页数,但链接错误。
- 被
id
忽略,即代替controller/action/id?page= ...
,我得到controller/action?page= ...
。 - 这部分链接
sort=Model1.field1&direction=ASC
也不起作用。我可以用sort=field1&direction=ASC
. 但是如何区分第一个或第二个模型排序呢?
顺便说一句,所有这些在使用 CakePHP 1.3 时都运行良好。