カテゴリー
Laravel

Laravelのデフォルトページネータの仕様を教えてクレメンス

まずはこいつを見てくれ。こいつをどう思う?

Laravelはこんなんも何も考えずに実装してくれる。最高や。

せやけども、どう言う仕様か突っ込まれることもあるやろし、なんか変更したいとか言われる可能性がなくもない。実際スルー推奨やけども。

とはいえ、説明せなアカンときはテキストで説明するのも憚れるし、これ見てクレメンスで済むように用意したったで。

と言うわけで、説明するゾー。これはあくまで、何もパラメータいじらずに使ったパターンやからね。なんかエグいやつは、そもそもガッツリページネータカスタムした方がええで。これはデフォルト使ってちゃちゃっとやりたいニキ向けや。

せやけども、デフォルトで唯一あると言っていいパラメータは、「現在のページの左右に表示するのは何個分か」だけや。

onEachSideとかでgrepしてくれたらええねんけども、それが初期値では3なんよね。

それがどう言うことかっちゅうのは先のアレを見てもらいたい。「15ページある場合」のセクションや。ほんで、現在のページが8のパターンに着目してもらうと、8を中心に6,7,8と9,10,11となってて、他が省略されとるね。つまりこう言うことやねん。

で、次に見てもらいたいのは、先頭と最後のところやね。

なんで、1,2と14,15になるか。

これはそう言うものなんや。ここは全くいじれない。ガッハ(ガッツリハードコード)や。なんで2個なのか、理由を知りたい。だいたいデザインとか仕様とずれるのはここや…。

最後にもう一つ、「全部で14ページある場合」から省略の(…)が出てくるけれども、これもそう言う仕様やねん。

明確にロジックがわけられているんよ。

最後のページ < ($onEachSide * 2) + 8 みたいな条件分岐がなされていて、これが適用されると省略のパターンにならないんよね。

つまりや、デフォルトのページネータでやってて、テストするときは、ページ数が14以上にならないと出てこないパターンがあるでっちゅうことや。要注意やで!

ところで、これ、みんなどうやって検索するん?
Pagination?Paginator?ページング?