ホームページ > バックエンド開発 > PHPチュートリアル > Laravel Eloquent の `with()` 関数を使用して、結合されたテーブルから列を選択的に取得するにはどうすればよいですか?

Laravel Eloquent の `with()` 関数を使用して、結合されたテーブルから列を選択的に取得するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-20 05:03:17
オリジナル
199 人が閲覧しました

How Can I Selectively Retrieve Columns from Joined Tables Using Laravel Eloquent's `with()` Function?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート