VerbAlexVlad
@VerbAlexVlad
Программист-любитель

Почему метод «count()» показывает не правильное количество элементов???

Есть две модели, например "categories" и "products"
связь один ко многим hasMany (у одной категории, много продуктов)

И допустим у меня всего одна категория, и есть пять продуктов данной категории

по идее, конструкция
Categories::find()->joinWith('products')->limit(1)->count();

должна вывести 1 (категория то одна)

А на самом деле, выводит 5 (по количеству элементов в связанной таблице)

если вместо joinWith использовать with, то все работает корректно, но уже извне, к элементам "products" не подобраться (например для сортировки или фильтрации)...

Почему это происходит, и как с этим бороться??
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 1
$query->groupBy(['id']);

ps. Иногда полезно через createCommand()->rawSql вытащить генерируемый код, скормить его базе, и посмотреть на результат.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы