ホームページ  >  記事  >  バックエンド開発  >  Laravel の `$model->relation();` と `$model->relation` の違いは何ですか?

Laravel の `$model->relation();` と `$model->relation` の違いは何ですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 20:08:02698ブラウズ

Laravel の

What is the difference between `$model->relation();` と `$model->relation` は? 
relation();` と Laravel の `$model->relation`? " />

「$model->relation();」と「$model->relation」の違いを理解する

Laravel の違い"$model->relation();" と "$model->relation" の間は、返される結果のタイプにあります:

"$model->relation();" は関係オブジェクト自体を返します。これは、追加の条件や制約を指定するなど、関係に対して追加の操作を実行する必要がある場合に便利です。

"$model->relation" は関係の結果を返します。これは通常、関連データを含むコレクション オブジェクトです。これは、ほとんどの場合に使用する必要があるデータを表します。

例実装

特定のシナリオで、店舗とそれぞれのビールの販売代理店のリストを取得するには、次のアプローチを使用できます。

<code class="php">$store = $this->store->find($id)->first();
$distributors = $store->distributors;
$beers = [];

foreach ($distributors as $distributor) {
    $beers = array_merge($distributor->beers->lists('name', 'id'), $beers);
}</code>

内訳は次のとおりです。コード:

  • $store->distributors は関係を読み込みますが、クエリは実行しません。関係オブジェクトを返します。
  • $distributor->beers はビール関連を取得します。
  • ->lists('name', 'id') は、結果からビールの名前と ID のみを抽出します。
  • 外側の foreach ループは、ディストリビューターを反復処理してマージします。ビールのリストが $beers 配列に追加されます。

以上がLaravel の `$model->relation();` と `$model->relation` の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。