ホームページ > バックエンド開発 > PHPチュートリアル > Laravel Eloquent Orm ユーザーガイド

Laravel Eloquent Orm ユーザーガイド

WBOY
リリース: 2016-06-23 13:13:10
オリジナル
1252 人が閲覧しました

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');

}


}

追伸: 実際、モデルには自分自身を混乱させる可能性があるほど多くのことを記述する必要はありません。 on 特定のクエリを実行する必要がある場合にこれを記述する必要があります。簡単な例として、ロールに含まれるユーザーの数だけを確認する必要があり、ロールとユーザーに多対多の関係があることが判明した場合に実行できます。これを User メソッドに書き込みます。クラス内のすべての生徒をチェックする必要があり、そのクラスが生徒と 1 対多の関係にあることが判明した場合は、クラス モデルに Student メソッドを記述し、hasMany を使用できます。

これらのことで私たちの思考を混乱させる必要はありません。すべては実際のニーズに基づいて行われます。クエリが必要な場合は、その関係を考慮してメソッドを作成します。たとえば、特定のロールのユーザーを確認したい場合、ロールとユーザーのペアが多数あることを頭の中で理解しておく必要があるため、事前に何もない状態から作成するのではなく、自然に blongsToMany を使用します。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート