laravelでページング機能を手動で実装する方法を説明する例
Laravel は、PHP で書かれた無料のオープンソース Web アプリケーション フレームワークです。これは長い間 Web 開発分野の標準の 1 つとなっており、そのシンプルな構文、美しいデザイン、強力な拡張性により、大多数の開発者に歓迎されています。
そして、Laravel 独自のページングメソッド Paginator も特別な機能の 1 つです。ただし、特別なニーズを満たすためにページングを手動で実装する必要がある場合があります。それでは、ページング機能を手動で実装する方法を詳しく紹介します。
準備
ページングを手動で実装する前に、illuminate/support という Laravel コンポーネントをインストールする必要があります。このパッケージには、小さいながらも重要な補助関数がいくつか用意されています。 Composer を通じてインストールできます:
composer require illuminate/support
インストールが完了したら、Laravel プロジェクトの config/app.php ファイルにプロバイダーを追加する必要があります:
'providers' => [ // ... Illuminate\Support\ServiceProvider::class, // ... ],
このように、 Laravel が提供するページネーション機能を使用できます。
ページングを手動で実装する
Laravel 独自の Paginator メソッドを使用してクエリ結果をページ分割できますが、これによりデータベースが 2 回クエリされることになり、場合によってはパフォーマンスが手動ほど良くない可能性があります。実装。手動ページングを実装する方法は、Laravel が提供する Collection 実装を使用することです。
最初に、渡されるパラメーターを定義します。$perPage は各ページに表示されるアイテムの数を表し、$page は現在のページ番号を表します。
public function manualPaginate($perPage, $page) { $records = DB::table('table_name')->get(); // 从数据库中取出所有记录 $total = count($records); // 根据记录总数获取总条数 $start = ($page - 1) * $perPage; // 获取这一页的起始位置 $records = collect($records); // 将获取的记录转换成 Collection 类型 $pageData = $records->slice($start, $perPage); // 获取这一页的记录 $paginator = new LengthAwarePaginator( // 将分页数据封装成分页器 $pageData, $total, $perPage, $page, [ 'path' => LengthAwarePaginator::resolveCurrentPath(), // 当前页的 URL 地址 'pageName' => 'page', ] ); return $paginator; // 返回分页器对象 }
上記のコードでは、最初にデータベースからすべてのレコードを取得し、次にレコードの総数からレコードの総数を取得し、次にこのページの開始位置とこのページのレコードを取得します。レコードは Collection 型に変換され、ページング データは LengthAwarePaginator クラスを通じてページャーにカプセル化され、最後にページャー オブジェクトが返されます。
ビューでは、次の方法でページネーターの要素を取得できます。
{{-- 获取分页数据 --}} @foreach ($paginator as $item) <tr> <td>{{ $item->id }}</td> <td>{{ $item->name }}</td> <td>{{ $item->email }}</td> </tr> @endforeach {{-- 获取分页链接 --}} {{ $paginator->links() }}
この時点で、ページング関数を手動で実装しました。もちろん、これは単純な例にすぎず、実際の状況ではさらに複雑な処理ロジックが必要になる場合があります。ただし、この単純な実装を通じて、手動ページングの原理をより深く理解することができ、実際のプロジェクトでページング機能をカスタマイズするためのいくつかのアイデアも得ることができます。
以上がlaravelでページング機能を手動で実装する方法を説明する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、堅牢なLaravel Restful APIの構築をガイドします。 プロジェクトのセットアップ、リソース管理、データベースインタラクション、シリアル化、認証、承認、テスト、および重要なセキュリティベストプラクティスをカバーしています。 スケーラビリティチャレに対処します

この記事では、Composerを使用して最新のLaravelフレームワークをインストールするための包括的なガイドを提供します。 前提条件、ステップバイステップの手順、一般的なインストールの問題(PHPバージョン、拡張機能、許可)のトラブルシューティング、および最小限の詳細

この記事では、メニュー管理に関するLaravel-Adminユーザーをガイドします。 メニューのカスタマイズ、大規模なメニューのベストプラクティス(分類、モジュール化、検索)、およびLaravelの著者を使用したユーザーの役割と許可に基づく動的メニュー生成をカバーします

この記事では、LaravelでOAUTH 2.0認証と承認を実装しています。 League/OAuth2-Serverやプロバイダー固有のソリューションなどのパッケージを使用して、データベースのセットアップ、クライアント登録、承認サーバー構成を強調しています

この記事は、Laravel開発者が適切なバージョンを選択する際にガイドします。 新しいバージョンが高度な機能を提供することを認めながら、安定性とセキュリティのために最新の長期サポート(LTS)リリースを選択することの重要性を強調しています。

この記事では、Laravelでカスタム検証ルールの作成と使用について説明し、それらを定義および実装する手順を提供します。再利用性や特異性などの利点を強調し、Laravelの検証システムを拡張する方法を提供します。

この記事では、スケーラビリティ、信頼性、セキュリティに焦点を当てたクラウドネイティブ環境でLaravelを展開するためのベストプラクティスについて説明します。重要な問題には、コンテナ化、マイクロサービス、ステートレス設計、最適化戦略が含まれます。

この記事では、コンポーネントを使用してLaravelで再利用可能なUI要素の作成とカスタマイズについて説明し、組織のベストプラクティスを提供し、パッケージを強化することを提案します。
