在当前页面中从下一页获取项目


CakeGetting items from next page in current page?

我目前正在使用cakephp的画廊系统。在其中,我们对每个图像相册进行了分页,因此每个页面最多包含一定数量的图像。我通过使用

实现了这一点:
$this->paginate = array(
    'conditions' => array(
        'Item.album_id' => $id
    ),
    'order' => array(
        'Item.added' => 'desc'
    ),
    'limit' => '50'
);
在我的视图控制器上。有了这个,我可以毫无问题地显示每一页上的所有项目。 然而,我目前面临一个问题:我需要在当前页面的所有项目之后显示一个指向下一页的按钮。这不是一个问题,除了在设计上说下一页的按钮应该有一个来自下一页的项目作为它的背景。

我已经环顾四周,试图找出一种方法,从下一页的一个分页系统在cakephp没有运气的项目。有人这样做过吗,或者有人知道怎么做吗?

您必须在当前页面手动查询预览图像。要访问页码,可以在操作中使用$this->params。然后,您必须使用文档中提到的"limit"answers"page"参数查询图像。然后像这样设置图像URL:

$this->set('preview_image_url', $queried_url);

然后在视图中使用内联样式设置下一个按钮的背景

在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()') -我试图从下面的页面抓取一个随机项目,但是,唉,似乎蛋糕首先打乱所有项目,然后分页。可能有其他方法可以解决这个问题,但是现在这个方法已经为我解决了。

同样,使用'page' => $CurrPage + 1似乎也不起作用,系统反而返回一个看似随机选择的图像。这就是为什么我默认使用'offset' => $CurrPage*50,其中50是我显示的每页项目的数量。