ホームページ >バックエンド開発 >PHPチュートリアル >Laravel の `$model->relation()` と `$model->relation` の違いは何ですか?

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 07:01:30426ブラウズ

Laravel の

What's the Difference Between `$model->relation()` と `$model->relation` は? 
relation()` と `$model->relation` は Laravel で? " />

$model->relation() と $model->relation() を理解する

Laravel の構文 $model->relation()と $model->relation は、モデルのリレーションシップにアクセスするためによく使用されますが、機能は大きく異なります。

$model->relation()

$model->relation() は、モデルで定義されたリレーションシップ メソッドを呼び出します。このメソッドは、実際のリレーションシップ オブジェクトを返します。これにより、さらにクエリをカスタマイズできます。たとえば、

<code class="php">$distributors = $store->distributors()->where('priority', '>', 4);</code>

$model-> ;relation

$model->relation は、リレーションシップの結果を取得し、モデルのプロパティとしてアクセスできるようにします。この構文は、リレーションシップ データを自動的に取得して返します。結果をコレクションとして返します。 例:

<code class="php">$distributors = $store->distributors;</code>

主な違い

  • 戻り値の型: $model->relation( ) はリレーションシップ オブジェクトを返しますが、$model->relation はリレーションシップの結果を返します。
  • クエリのカスタマイズ: $model->relation() を使用すると、クエリをフェッチする前にさらにクエリをカスタマイズできます。一方、$model->relation は、リレーションシップ メソッドで定義されたデフォルトのクエリに基づいて結果を取得します。
  • 動的プロパティ: $model->relation は、動的リレーションシップ プロパティ機能を利用します。 Laravel を使用してゲッター メソッドを自動的に作成します。

使用例

  • リレーションシップを変更する必要がある場合は、$model->relation() を使用します。結果を取得する前にクエリを実行します。
  • カスタマイズせずにリレーションシップ データを単に取得したい場合は、$model->relation を使用します。

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

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