1. 1vs1 の関係を説明します
たとえば、部門テーブルとマネージャー テーブルの 2 つのテーブルがあり、各部門にはマネージャーが 1 人だけ存在し、1 人のマネージャーは 1 つの部門のみを管理します。これは 1 対 1 を表します。 relationship
class User extends Eloquent {
//One-to-one
public function dept() {
return $this->hasOne('Dept') // これは Eloquent モデルと一致します
}
class Dept extends Eloquent {
public function user() {
Return $this->belongsTo('user'); // これは Eloquent モデルと一致します
}
1 対 1 の関係では、メインテーブル(つまり、user_idテーブルを保存するテーブル)はhasOneで表現され、user_idを保存するもう1つのテーブルはbelongsToで表現されます。言い換えると、blongsTo を含むテーブルを見たときに、その背後にパラメーターがない場合、このテーブルはメソッド名 _id を使用して前のテーブルと関連付けることを意味します
2. 説明 1 対複数のリレーションシップ
たとえば、次のようになります。 class Table、student table、クラスには多くの生徒がいますが、1 人の生徒は 1 つのクラスにのみ存在するため、クラス テーブルと生徒テーブルは 1 対多の関係になります
class Squad は Eloquent {
//One を拡張します-to-many
public functionstudent() { We can 1 対多の関係では、メイン テーブル (つまり、squad_id テーブルを保存しないテーブル) は hasMany で表現され、 squad_idを保存する他のテーブルはbelongsToで表現されます。記述 3 は、キャラクター テーブル、ユーザー テーブルなどの複数対多の関係を記述します。1 つのキャラクターが複数のユーザーを持ち、1 人のユーザーが複数のキャラクターを持つことができます。 >belongsToMany('Role','user_role');
}
}
これらのことで私たちの思考を混乱させる必要はありません。すべては実際のニーズに基づいて行われます。クエリが必要な場合は、その関係を考慮してメソッドを作成します。たとえば、特定のロールのユーザーを確認したい場合、ロールとユーザーのペアが多数あることを頭の中で理解しておく必要があるため、事前に何もない状態から作成するのではなく、自然に blongsToMany を使用します。