0

我想用 CakePHP 构建一个小型图片库。因此,我创建了一个索引视图,它显示一个带有图像缩略图的 3x3 表格。对于分页和排序,我添加了以下代码:

图像控制器.php:

var $paginate = array(
            'limit' => 9,
            'order' => array('Image.id' => 'desc')
            );     

public function index() {  
  $data = $this->paginate('Image');
  $this->set('images', $data);
}

索引.ctp:

<?php echo $this->Paginator->sort('id', 'Id'); ?> | 
<?php echo $this->Paginator->sort('name', 'Title'); ?>
...
<?php echo $this->Paginator->prev(' << Previous', null, null, array('class' => 'disabled')); ?>
<?php echo $this->Paginator->numbers(array('first' => 2, 'last' => 2)); ?>
<?php echo $this->Paginator->next('Next >> ', null, null, array('class' => 'disabled')); ?>

这很好用。现在,当您单击缩略图时,将使用名为“view”的视图(例如 localhost/gallery/images/view/1)显示单个图像。与索引视图一样,该视图也应该有一个分页,其中当前选择了 id 为 1 的图像,并且您可以在其中导航到与当前选择的图像相关的 n 个上一个和下一个图像。此外,图像应该按照与索引视图上的图片相同的标准进行排序(例如按名称)。有没有一种优雅的方法可以用 CakePHP 解决这个问题?

4

1 回答 1

0

我会通过将页码从原始分页传递到详细视图来解决这个问题。

如果您1在 page 上查看 Image ID 2,您的 URL 将类似于:

/gallery/images/view/1/2

那是:

/gallery/images/view/:id/:page

从这些信息中,您可以从指定页面上的索引操作中查询相同的分页数据,并从该数据中提供返回和下一个导航选项。

于 2012-08-07T02:37:02.750 回答