Laravel Eloquent は、データベースと対話するための便利で読みやすいメソッドを提供し、データベース データを簡単に取得できるようにします。いくつかのデータ取得手法を以下に紹介します:
1. すべてのレコードを取得します
all()
メソッドを使用してテーブル内のすべてのレコードを取得します:
<code class="language-php">use App\Models\Post; $posts = Post::all();</code>
これはコレクションを返します。 foreach
ループまたは他の収集メソッドを使用してデータにアクセスできます:
<code class="language-php">foreach ($posts as $post) { echo $post->title; }</code>
2. 単一のレコードを取得します
1. find()
メソッド: 主キーに基づいて単一のレコードを取得します。
<code class="language-php">$post = Post::find(1); if ($post) { echo $post->title; }</code>
2. findOrFail()
メソッド: 主キーに基づいて単一のレコードを取得します。レコードが存在しない場合は、404 例外がスローされます。
<code class="language-php">$post = Post::findOrFail(1);</code>
3. first()
メソッド: 条件を満たす最初のレコードを取得します。
<code class="language-php">$post = Post::where('status', 'published')->first();</code>
4. firstOrFail()
メソッド: 条件を満たす最初のレコードを取得します。レコードが存在しない場合は、404 例外がスローされます。
<code class="language-php">$post = Post::where('status', 'published')->firstOrFail();</code>
3. クエリ条件を使用してレコードをフィルタリングします
where
およびその他の条件ステートメントを使用してデータをフィルターします。
1. where
メソッド:
<code class="language-php">$posts = Post::where('status', 'published')->get();</code>
2. 複数の条件:
<code class="language-php">$posts = Post::where('status', 'published') ->where('user_id', 1) ->get();</code>
3. orWhere
メソッド:
<code class="language-php">$posts = Post::where('status', 'published') ->orWhere('status', 'draft') ->get();</code>
4. 特定のフィールドを選択します
Eloquent はデフォルトですべてのフィールドを取得します。 select()
メソッドを使用して特定のフィールドを選択します:
<code class="language-php">$posts = Post::select('title', 'content')->get();</code>
5. ページネーション
ページ内のデータを取得するには、paginate()
メソッドを使用します:
<code class="language-php">$posts = Post::paginate(10);</code>
Blade テンプレートにページネーション リンクを表示します:
<code class="language-blade">{{ $posts->links() }}</code>
6. データチャンク化
大量のデータを処理する場合、メモリ使用量を効果的に削減できます。
<code class="language-php">Post::chunk(100, function ($posts) { foreach ($posts as $post) { echo $post->title; } });</code>
7. 並び替え結果(並べ替え)
指定された順序で並べ替えるには、orderBy()
メソッドを使用します:
<code class="language-php">$posts = Post::orderBy('created_at', 'desc')->get();</code>
8. リミットとオフセット
take()
または limit()
と skip()
メソッドを使用して、フェッチされるレコードの数を制限します:
<code class="language-php">$posts = Post::take(5)->get(); // 获取前 5 条记录 $posts = Post::skip(10)->take(5)->get(); // 跳过前 10 条,获取接下来的 5 条</code>
9. 集計関数 (集計)
1. カウント:
<code class="language-php">$count = Post::count();</code>
2. 最大値:
<code class="language-php">$maxViews = Post::max('views');</code>
3. 最小値:
<code class="language-php">$minViews = Post::min('views');</code>
4. 平均:
<code class="language-php">$avgViews = Post::avg('views');</code>
5. 合計:
<code class="language-php">$totalViews = Post::sum('views');</code>
10. カスタマイズされた関係の取得
Eloquent は、リレーションシップを通じて他のモデルからデータを取得することをサポートしています。
1. 熱心な読み込み:
<code class="language-php">$posts = Post::with('comments')->get();</code>
2. 関係を指定します:
<code class="language-php">$posts = Post::with(['comments', 'user'])->get();</code>
11. 生のクエリ
Laravel の DB ファサードを使用してカスタム SQL クエリを実行します:
<code class="language-php">use App\Models\Post; $posts = Post::all();</code>
これらの方法は、さまざまなデータベース操作のニーズを満たす柔軟なデータ取得方法を提供します。 実際の状況に応じて適切な方法を選択してください。
以上がバングラ語での Laravel Eloquent ORM パーツモデルの取得)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。