max Вам нужно продумать специальные helper
методы в модели, которые будут выполнять запросы count
, и дополнительно кешируя их через метод remember()
.
Пример кода:
{% for category in categories %}
{{ category.countItems() }}
{% endfor %}
В модели Category
:
public function countItems()
{
return $this->items()->remember(60)->count();
// Считаем по связи кол-во элементов и сохраняем результат в кеше на 60 минут.
}
Во-первых мы избавились от лишнего цикла for, во-вторых мы закешировали обращения к базе. Думаю это сильно уменьшит кол-во запросов в бд.