alex4answ
@alex4answ

Как узнать количество связанных записей?

Добрый день, есть категории, и товары, в gridview категорий нужно вывести кол-во товаров для них.

Делать hasMany, только для того чтобы узнать количество как-то не правильно как мне кажется (тянуть всю инфу, вместо count())

Подскажите пожалуйста, как я могу узнать количество связанных записей?
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Вот такой запрос можно сделать, используя joinWith().
В модели Categories добавляем публичное поле product_count.
$query = Category::find()
               ->select(['*', 'product_count' => new \yii\db\Expression('COUNT(products.id)')])
               ->joinWith('products', false)
              ->groupBy('{{%categories}}.id')

В итоге в выборку попадёт product_count, которым можно использовать. В этом параметре будет хранится количество товаров для каждой категории.
Подставьте свои значения и всё должно работать.
Подробней о работе со связными данными можно посмотреть здесь.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы