「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Laravel の `$model->relation()` と `$model->relation` の違いは何ですか?

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

2024 年 11 月 20 日に公開
ブラウズ:893

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

$distributors = $store->distributors()->where('priority', '>', 4);

$model->relation

$model->relation は、 Laravel はリレーションシップのゲッター メソッドを動的に作成し、モデル プロパティとしてアクセスできるようにします。例:

$distributors = $store->distributors;

主な違い

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

ユースケース

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

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3