0

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')); ?>

これはうまくいきます。これで、サムネイルをクリックすると、'view' という名前のビュー (例: localhost/gallery/images/view/1) を使用して単一の画像が表示されます。インデックス ビューと同様に、このビューにもページネーションが必要です。ここでは、id が 1 の画像が現在選択されており、現在選択されている画像に関連する n 個の前後の画像に移動できます。さらに、画像は、インデックス ビューの画像と同じ基準 (名前など) で並べ替える必要があります。この問題を CakePHP で解決するエレガントな方法はありますか?

4

1 に答える 1

0

元のページネーションから詳細ビューにページ番号を渡すことで、これにアプローチします。

1ページの画像 ID を見ている場合2、URL は次のようになります。

/gallery/images/view/1/2

あれは:

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

この情報から、指定されたページのインデックス アクションから同じページ分割されたデータをクエリし、そのデータから前後のナビゲーション オプションを提供できます。

于 2012-08-07T02:37:02.750 に答える