3 つのテーブルを結合するための雄弁なアプローチ
問題:
3 つのテーブルを考えてみましょう: Articles、カテゴリとユーザー。目的は、それぞれの ID ではなくカテゴリ名とユーザー名を使用して記事を取得することです。
解決策:
Eloquent は、リレーショナル データを取得する簡単な方法を提供します。
モデル定義:
// Article.php namespace App\Models; use Eloquent; class Article extends Eloquent { protected $table = 'articles'; public function user() { return $this->belongsTo('App\Models\User'); } public function category() { return $this->belongsTo('App\Models\Category'); } } // Category.php namespace App\Models; use Eloquent; class Category extends Eloquent { protected $table = "categories"; public function articles() { return $this->hasMany('App\Models\Article'); } } // User.php namespace App\Models; use Eloquent; class User extends Eloquent { protected $table = 'users'; public function articles() { return $this->hasMany('App\Models\Article'); } }
雄弁なクエリ:
カテゴリおよびユーザー情報を含む記事を取得するには:
$article = \App\Models\Article::with(['user','category'])->first();
使用法:
関連するファイルにアクセスするにはデータ:
$article->user->user_name //Retrieve user name $article->category->category_name //Retrieve Category name
その他の例:
$categories = \App\Models\Category::with('articles')->get();
$users = \App\Models\Category::with('users')->get();
追加リソース:
以上がEloquent を使用してカテゴリとユーザー情報を含む記事を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。