【问题标题】:Cakephp - Getting items from next page in current page?Cakephp - 从当前页面的下一页获取项目?
【发布时间】:2015-08-07 21:22:11
【问题描述】:

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

$this->paginate = array(
    'conditions' => array(
        'Item.album_id' => $id
    ),
    'order' => array(
        'Item.added' => 'desc'
    ),
    'limit' => '50'
);

在我的视图控制器上。有了这个,我可以毫无问题地显示每个页面上的所有项目。

但是,我目前面临一个问题:在当前页面中的所有项目之后,我需要显示一个指向下一页的按钮。这不是问题,只是按照设计,显示 NEXT PAGE 的按钮应该有一个来自下一页的项目作为其背景。

我环顾四周,试图找出一种方法来从 cakephp 中分页系统的下一页中提取项目,但没有运气。有没有人这样做过,或者有没有人知道如何去做?

【问题讨论】:

    标签: php cakephp pagination


    【解决方案1】:

    您必须在当前页面中手动查询预览图像。 要访问页码,您可以在操作中使用$this->params。然后您必须使用documentation 中提到的“限制”和“页面”参数查询图像。 之后像这样设置图像 URL:

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

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

    【讨论】:

      【解决方案2】:

      在 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 是我正在显示的每页的项目数量。

      【讨论】:

        猜你喜欢
        • 2011-08-14
        • 1970-01-01
        • 2021-09-18
        • 2011-11-22
        • 2011-06-17
        • 2011-05-07
        • 1970-01-01
        • 1970-01-01
        • 2013-04-17
        相关资源
        最近更新 更多