我想用CakePHP构建一个小图库。因此,我创建了一个索引视图,显示带有图像缩略图的3x3表。对于分页和排序,我添加了以下代码:
ImagesController.php:
var $paginate = array(
'limit' => 9,
'order' => array('Image.id' => 'desc')
);
public function index() {
$data = $this->paginate('Image');
$this->set('images', $data);
}
index.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')); ?>
这很有效。现在,当您点击缩略图时,将使用名为&#39; view&#39;的视图显示单个图像。 (例如localhost / gallery / images / view / 1)。与索引视图一样,此视图也应该具有分页,其中当前选择id为1的图像,并且您可以在其中导航到相对于当前所选图像的n个上一个和下一个图像。此外,图像应按照与索引视图上的图片相同的标准(例如,通过名称)进行分类。 CakePHP是否有一种优雅的方法来解决这个问题?
答案 0 :(得分:0)
我通过将页码从原始分页传递到详细视图来实现此目的。
如果您正在查看第1
页上的图片ID 2
,那么您的网址将如下所示:
/gallery/images/view/1/2
那是:
/gallery/images/view/:id/:page
根据此信息,您可以从指定页面上的索引操作查询相同的分页数据,并从该数据中提供后退和下一个导航选项。