我目前正在使用cakephp开发一个图库系统。在其中,我们对每个图像专辑进行了分页,因此每个页面最多包含一定数量的图像。我通过使用:
达到了这个目标$this->paginate = array(
'conditions' => array(
'Item.album_id' => $id
),
'order' => array(
'Item.added' => 'desc'
),
'limit' => '50'
);
在我的视图控制器上。有了这个,我可以毫无问题地显示每页上的所有项目。
然而,我现在面临一个问题:我需要在当前页面中的所有项目之后显示一个指向下一页的按钮。这不是问题,除了通过设计设置按下NEXT PAGE的按钮应该有下一页的项目作为其背景。
我环顾四周,试图想办法从cakephp中的分页系统的下一页中拉出一个项目而没有运气。有没有人这样做过,或者有人知道如何去做?
答案 0 :(得分:1)
您必须在当前页面中手动查询预览图像。 要访问页码,您可以在操作中使用$this->params。然后你必须用'限制'来查询图像。和'页' documentation中提到的参数。 之后设置图像URL如下:
$this->set('preview_image_url', $queried_url);
然后在视图中使用内联样式设置下一个按钮的背景。
答案 1 :(得分:0)
在Alto的帮助下,我最终做到了这一点(把它放在这里以防万一有人想知道我是怎么做的):
$CurrPage = $this->params['paging']['Item']['page'];
$NextParams = array(
'limit' => 1,
//'page' => $CurrPage + 1,
'order' => array(
'Item.added' => 'desc'
),
'offset' => $CurrPage*50
//'order' =>('rand()')
);
$NextImage = $this->Item->find('first', $NextParams);
$this->set('NextImage', $NextImage);
这给了我下一页的第一项,这对我来说已经足够了。请注意评论'order' =>('rand()')
- 我试图从下一页抓取一个随机项目,但是,唉,似乎Cake首先争抢所有项目然后分页。可能有一种方法可以解决这个问题,但是现在这个问题已经解决了。
此外,使用'page' => $CurrPage + 1
似乎不起作用,系统改为返回一个看似随机选择的图像。这就是我违反使用'offset' => $CurrPage*50
的原因,其中50是我每页显示的项目数量。