Laravel のページングは非常に便利で、実際に拡張するのは非常に簡単です。以下の例を実行して、paginate() メソッドと simplePaginate() メソッドを拡張して実装してみましょう。もちろん「」「」ではなく「前ページ」「次ページ」を表示するなど、ページングのスタイルをカスタマイズします。 、特定のページにジャンプしたり、ページネーションのレコードの総数や現在表示されているレコードの範囲などを表示します。 。 。
5.1 と 5.2 は同じ方法であるはずです。ここでは 5.2 バージョンを使用しています。ドキュメントによると、Paginator はクエリ ビルダーと Eloquent の simplePaginate メソッドに対応し、LengthAwarePaginator は paginate メソッドに相当します。次に、ソース コードを見て、paginate が render() を実装する方法を確認してみましょう
イルミネーション/ページネーション/長さAwarePaginator.php
render()で渡されるのはPresenterのインスタンスであり、このインスタンス化のrenderメソッドを呼び出すことでページング表示を実現します。そうでない場合は、BootstrapThreePresenter で render() を呼び出して、BootstrapThreePresenter の動作を確認してください
イルミネーション/ページネーション/ブートストラップThreePresenter.php
ここでは、BootstrapThreePresenter が PresenterContract のインターフェイスを実装していることがわかります。render() はページング表示の実際の実装です。構築メソッド PaginatorContract が実際には Paginator であることを見ていきましょう。プレゼンターインターフェイスで定義されているため、実現する必要があります
illuminate/contracts/Pagination/Presenter.php
render メソッドと hasPages メソッドが定義されており、実装する必要があります
これで、ページング表示をカスタマイズしたい場合は、インターフェイスに render() と hasPages() を実装する独自の Presenter を作成する必要があることが明確になりました。
まず、中央にページネーション番号の例を使用して、「前のページ」と「次のページ」を表示する paginate() を単純に実装してみましょう。
以下のように新規ファイルを作成します(個人的な習慣)
app/Foundations/Pagination/CustomerPresenter.php
リーリーこれは非常に簡単で、主にプロジェクト内でページング スタイルを変更したり、ページング ジャンプを追加したりする必要がある場合は、各表示メソッドの HTML 要素を書き換えるだけで済みます。これも非常に柔軟です。たとえば、ページネーションは $users と呼ばれ、デフォルトのページネーション表示は次のようになります。
{$users->render() !!}
カスタマイズされたページング表示に変更されました:
{!! with(new AppFoundationsPaginationCustomerPresenter($categories))->render() !!}
これで、ページ上に「前のページ」と「次のページ」のスタイルに加えて、ページング リンクの番号が表示されるはずです。
新しい AppFoundationsPaginationCustomerSimplePresenter.php
リーリー
ページ表示:
{!! with(new AppFoundationsPaginationCustomerSimplePresenter($categories))->render() !!}
転載する際は明記してください: Ryan は LNMP テクノロジー スタック ノートから転載しました
以上がこの記事の全内容です。PHP プログラミングを学習する皆さんのお役に立てれば幸いです。