【CakePHP】Pagination(ページネーション)を使用する:prev, next

2019年7月29日

バージョン:CakePHP 2.x

Pagination(ページネーション)を使用して「<< 前へ」や「次へ >>」のリンクを作成する場合は、
prevとnextを使えば簡単に実現することができます。

基本的な使い方

基本的な使い方は下記の通りです。下記をViewに書けばリンクが表示されます。

echo $this->Paginator->prev('<< 前へ', array(), null, array('class' => 'prev disabled'));
echo $this->Paginator->next('次へ >>', array(), null, array('class' => 'next disabled'));

実際の出力例

前のページが存在する場合、prevの出力は下記のようになります。

<span class="prev">
  <a rel="prev" href="/xxxx/index/page:1/sort:title/order:desc">
    << 前へ
  </a>
</span>

前のページが存在しない場合は下記のような出力です。

<span class="prev disabled"><< 前へ</span>

パラメーターとオプションについて

prevとnextの構文は下記となります。

PaginatorHelper::prev($title = '<< Previous', $options = array(), $disabledTitle = null, $disabledOptions = array())
PaginatorHelper::next($title = 'Next >>', $options = array(), $disabledTitle = null, $disabledOptions = array())
パラメーター 説明
$title (string) リンクのタイトル文字(デフォルト:'<< Previous’,’Next >>’)
$options (mixed) リンクのオプション(後述)
$disabledTitle (string) リンク無効時のタイトル
$disabledOptions (mixed) リンク無効時のオプション(後述)

オプションについては下記になります。($optionsと$disabledOptions)

オプション 説明
tag 使用したいタグ。falseを設定するとタグを使用しません。(デフォルト:span)
escape リンクタイトルをエスケープするか(デフォルト:true)
model 使用するモデル名(デフォルト:PaginatorHelper::defaultModel())
disabledTag リンク無効時に使用したいタグ

オプション「tag」について

例えばリンクが「spanタグ」で囲まれていたのでを「liタグ」に変更したい場合は、下記となります。

echo $this->Paginator->prev('<< 前へ', array('tag' => 'li'));

出力は下記のようになります。

<li class="prev">
  <a rel="prev" href="/xxxx/index/page:1/sort:title/order:desc">
    << 前へ
  </a>
</li>

また、「false」を設定することでタグを消すこともできます。

echo $this->Paginator->prev('<< 前へ', array('tag' => false));

出力は下記のようになります。

<a rel="prev" href="/xxxx/index/page:1/sort:title/order:desc">
	<< 前へ
</a>

参考:公式サイト(Paginator)

スポンサーリンク