Laravel Eloquent を使用した 3 つのテーブルの結合
はじめに
リレーショナル データベースを使用する場合の結合複数のテーブルにわたってデータを取得するには、テーブルが必要になることがよくあります。この記事では、Eloquent ORM を使用して Laravel で 3 つのテーブルを結合する方法を示し、ネイティブ SQL 結合の代替手段を提供します。
データベース スキーマ
次のデータベース スキーマを考えてみましょう。
Eloquent によるクエリ
関係のセットアップ
まず、モデル間の関係を確立します。
// Article.php class Article extends Eloquent { public function user() { return $this->belongsTo('App\Models\User'); } public function category() { return $this->belongsTo('App\Models\Category'); } } // Category.php class Category extends Eloquent { public function articles() { return $this->hasMany('App\Models\Article'); } } // User.php class User extends Eloquent { public function articles() { return $this->hasMany('App\Models\Article'); } }
結合クエリ
3 つのテーブルを結合し、カテゴリとユーザーの詳細を含む記事を取得するには、with() メソッドを使用します。
$articles = \App\Models\Article::with(['user', 'category'])->get();
関連データへのアクセス
結果が取得されたら、関連データにプロパティとしてアクセスできます。
foreach ($articles as $article) { echo $article->title . ' - '; echo $article->user->user_name . ' - '; echo $article->category->category_name; }
結論
使用Eloquent to join テーブルは、Laravel でのデータ検索を簡素化し、高速化します。モデル間の関係を確立することで、関連データに簡単にアクセスして操作できるようになります。
以上がEloquentを使用してLaravelで3つのテーブルを結合する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。