Я показываю список категорий, и количество статей в каждой категории. Я получаю ожидаемый результат, но у меня проблема с N + 1.
Мои CategoriesController
Функция индексации:
public function index() { return View::make('categories.index', [ 'articleCategories' => Category::where('type', 'articles')->orderBy('name')->get(), ]); }
Модель Category
имеет много отношения к статьям:
public function articles() { return $this->hasMany('Article'); }
Мои categories.index
:
@foreach($articleCategories as $articleCategory) <p> {{ HTML::link(URL::route('articles.category', array('category' => Str::slug($articleCategory->name))), $articleCategory->name) }} {{ $articleCategory->articles->count() }} </p> @endforeach
Изменить: он работает, если я хочу загрузить все связанные статьи, но так как мне нужна только статья count pr category, это кажется излишним. Будете ли вы загружать статьи и делать ->count()
влиять на производительность? Или это лучший способ сделать это?