ページネーションを行う (4/5)
作成:2011-12-26 08:20
更新:2011-12-26 08:20
更新:2011-12-26 08:20
■numbersによるページ番号リンク
この他に、ページ移動の機能としては「numbers」というメソッドも用意されています。これは、ページ番号でページ移動を行うためのリンクを生成するものです。
下のリスト欄に、前ページのサンプルにnumbersを追加したものを掲載しておきました。これでindexにアクセスしてみましょう。前後に移動する<と>の間に、「1/2/3」というようにページ番号が表示されます。
ここで用いているのは「numbers」というPaginatorのメソッドです。これは、単純にnumbers();と呼び出すだけでも利用できます。これにより、ページ番号のリンクを表示するコードが生成され返されます。これをそのままechoするだけでページ番号リンクが表示されるわけです。
しかし今回の例では、引数に配列を用意していますね。こうすることで、各種の設定情報をPaginatorに渡してページ番号を生成することができます。用意できる主な設定項目には以下のようなものがあります。
separator――ページ番号の区切り文字を指定します。
modulus――今のページの前後何ページを表示するか指定します。「2」とすると、通常は前後1ページずつ(計2ページ)+現在ページの3ページ分のページ番号が表示されます。
before/after――最初・最後のリンクの前後に表示するものを指定できます。
mod――使用するモデルの指定ができます。
ここでは、separatorとmodulusの値をそれぞれ設定しました。このようにすることで番号の表示を簡単に整えることができるのですね!
下のリスト欄に、前ページのサンプルにnumbersを追加したものを掲載しておきました。これでindexにアクセスしてみましょう。前後に移動する<と>の間に、「1/2/3」というようにページ番号が表示されます。
ここで用いているのは「numbers」というPaginatorのメソッドです。これは、単純にnumbers();と呼び出すだけでも利用できます。これにより、ページ番号のリンクを表示するコードが生成され返されます。これをそのままechoするだけでページ番号リンクが表示されるわけです。
しかし今回の例では、引数に配列を用意していますね。こうすることで、各種の設定情報をPaginatorに渡してページ番号を生成することができます。用意できる主な設定項目には以下のようなものがあります。
separator――ページ番号の区切り文字を指定します。
modulus――今のページの前後何ページを表示するか指定します。「2」とすると、通常は前後1ページずつ(計2ページ)+現在ページの3ページ分のページ番号が表示されます。
before/after――最初・最後のリンクの前後に表示するものを指定できます。
mod――使用するモデルの指定ができます。
ここでは、separatorとmodulusの値をそれぞれ設定しました。このようにすることで番号の表示を簡単に整えることができるのですね!
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※ページ移動リンク作成分の修正コード <div> <?php echo $this->Paginator->first('<< '); echo $this->Paginator->prev('< '); echo $this->Paginator->numbers( array('separator' => '/','modulus'=>2)); echo $this->Paginator->next(' >'); echo $this->Paginator->last(' >>'); ?> </div>
※関連コンテンツ
「初心者のためのCakePHP2 プログラミング入門」に戻る