4

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_idblog_titleusername、およびすべてのカテゴリ:

$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 つの大きなクエリで使用して結合する方がよいでしょうか?

4

1 に答える 1