Laravel 4 と Eloquent を使い始めたところです。私はブログテーブルとそれに関連する他の多くのテーブルを持っています:
blog <- main info about the blog record
blog_lang <- translations for each blog record
blog_categories <- name speaks for itself
blog_categories_lang <- translations for blog categories titles
blog_to_categories <- pivot table between blog and blog_categories
blog hasMany blog_lang.
blog_categories hasMany blog_categories_lang
blog belongsToMany blog_categories
次の情報を 1 つのグリッドに表示したい: blog_id
、blog_title
、username
、およびすべてのカテゴリ:
$data['blogs'] = Blog::with(array(
'translations' => function ($q) {
$q->where('lang_id', '=', 1);
},
'user',
'categories',
'categories.translations' => function ($q) {
$q->where('lang_id', '=', 1);
}
))->get();
これで 5 つのクエリが実行されます...ちょっと多すぎませんか? Fluent
これらすべてのテーブルを 1 つの大きなクエリで使用して結合する方がよいでしょうか?