この記事はLaravelチュートリアルコラムとしてLaravelの関連知識を紹介しています.主にLaravelにおけるHasOneとBelongsToの違いを分析しています.見ていきましょう.必要な友人の役に立てば幸いです. !
hasOne
と belongsTo
は、Laravel
で 1 対 1 を定義するために使用されるリレーションシップ メソッドです。関係。
hasOne
現在のモデルに関連付けられたモデルがあることを示します。これは、User モデルと Profile モデルがあり、ユーザーごとにプロファイルが 1 つだけある場合、User モデルの hasOne
メソッドを使用してこの関係を定義できることを意味します。
belongsTo
現在のモデルが関連付けられたモデルに属していることを示します。これは、プロファイル モデルとユーザー モデルがあり、各プロファイルがユーザーに属している場合、プロファイル モデルの belongsTo
メソッドを使用してこの関係を定義できることを意味します。
これら 2 つの方法は似たような方法で使用されますが、意味は逆です。
実際の状況に基づいて、どの方法を使用するかを決定する必要があります。
たとえば、ユーザー モデルで 1 対 1 の関係を定義したい場合は、次のコードを使用できます。
class User extends Model{ public function profile() { return $this->hasOne(Profile::class); }}
1 対 1 の関係を定義したい場合は、データ モデル内の 1 つのリレーションシップでは、次のコードを使用できます。
class Profile extends Model{ public function user() { return $this->belongsTo(User::class); }}
どちらの場合も、Eloquent
リレーションシップを使用して関連データをクエリできます。
hasOne
と belongsTo
はどちらも Laravel Eloquent ORM
で 1 対 1 の関係を定義するために使用されるリレーショナル メソッドであり、どちらもベースですon Eloquent
関係の抽象化。
基礎的な実装という点では、hasOne
と belongsTo
の間に大きな違いはありません。これらはすべて、関連付けられたモデルの外部キーと現在のモデルの主キーを定義することによって関係を確立します。
基礎となる実装の観点から見ると、hasOne
と belongsTo
は似ています。それらの違いは主に、それらが表す関係の方向に反映されます。 hasOne
は、現在のモデルに関連付けられたモデルがあることを意味し、belongsTo
は、現在のモデルが関連付けられたモデルに属することを意味します。
推奨学習: 「laravel ビデオ チュートリアル 」
以上がLaravel の HasOne と BelongsTo の違いを分析してください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。