我想做一些非常直接和简单的事情。我想在同一页面上有两组不同的分页数据。这两个不同的集合取决于不同的模型。为了讨论起见,我们会说它们是Image
和Item
。
我可以为两个模型设置两个寻呼机,并获得正确的对象集。我可以获得正确的寻呼机链接。但是当涉及到实际跟踪参数的链接时,两个寻呼机都会读取参数并假设它们适用于它们。
它最终看起来像这样:
$this->paginate = array (
'Item'=>array(
'conditions'=>array('user_id'=>$id),
'limit' => 6,
'order' => array(
'Item.votes'=>'desc',
'Item.created'=>'desc'
),
'contain'=>array(
'User',
'ItemImage' => array (
'order'=>'ItemImage__imageVotes desc'
)
)
),
'Image'=>array(
'limit'=>6,
'contain'=>array(
'User',
'ItemImage'=>array('Item'),
),
'order'=>array(
'Image.votes'=>'desc',
'Image.views'=>'desc'
),
'conditions'=>array(
'Image.isItemImage'=>1,
'Image.user_id'=>$id
)
)
);
$this->set('items', $this->paginate('Item'));
$this->set('images', $this->paginate('Image'));
那是在控制器中。在视图中,我有如下所示的排序链接:
<div class="control"><?php echo $this->Paginator->sort('Newest', 'Image.created', array('model'=>'Image')); ?></div>
但是,这会产生一个如下所示的链接:
http://localhost/profile/37/page:1/sort:Image.created/direction:asc
那里没有任何东西可以告诉分页器我打算对哪个模型进行排序。因此,当我单击链接时,它会尝试对两个模型进行排序Image.created
。结果是一个错误,因为Item
无法排序Image.created
。有什么我做错了吗?或者这是 CakePHP 的分页器不支持的东西?