ホームページ >バックエンド開発 >PHPチュートリアル >Laravel Eloquent の `with()` 関数を使用して、結合されたテーブルから列を選択的に取得するにはどうすればよいですか?
Laravel Eloquent の "With()" 関数を使用した選択的列取得
Eloquent モデルを使用する場合の一般的な要件は、結合する必要があることです。複数のテーブルを作成し、結合されたテーブルから特定の列を取得します。 "with()" 関数はリレーションシップを指定する便利な方法を提供しますが、最初は関連するテーブルからすべての列をフェッチします。
この例では、目的は、テーブルから特定の列 (ID とユーザー名) を取得することです。 「users」テーブルを「with()」を使用して「posts」テーブルと結合します。最初の実装では、両方のテーブルからすべての列をフェッチし、次のクエリが生成されます。
select * from `posts` select * from `users` where `users`.`id` in (<1>, <2>)
結合されたテーブルから必要な列のみを取得するには、クロージャ関数を 2 番目のパラメータとして "with( )" は次のようになります:
Post::query() ->with(['user' => function ($query) { $query->select('id', 'username'); }]) ->get()
この変更により、次のクエリが実行されます:
select * from `posts` select id, username from `users` where `users`.`id` in (<1>, <2>)
このアプローチリレーションシップの結合に「with()」関数を利用しながら、指定された列のみが結合テーブルから取得されるようにします。
重要な注意事項:
を含めることが重要です。クロージャ関数内の $query->select() の最初のパラメータとしての主キー (この場合は id)。これは、結合されたテーブルから結果を正しく取得するために必要です。
以上がLaravel Eloquent の `with()` 関数を使用して、結合されたテーブルから列を選択的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。