@SlimSavernake

Как отсортировать вложенные модели innerJoinWith yii2?

Добрый день. Я вывожу список категорий и всех товаров в них с помощью innerJoinWith:

$categories = Category::find()->innerJoinWith('products')->orderBy(['category.sort' => SORT_ASC])->all();


Категории в этом списке сортируются нормально в специальному полю sort, а продукты в категориях сортируются по ID, но у продуктов тоже есть поле sort и хотелось бы тоже по нему отсортировать.
Подскажите, пожалуйста, как это можно сделать?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
@SlimSavernake Автор вопроса
Разобрался:
Category::find()->innerJoinWith(['products' => function ($query) {
            $query->orderBy(['sort' => SORT_ASC]);
        }])->orderBy(['category.sort' => SORT_ASC])->all();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Попробуйте как-то так orderBy(['category.sort' => SORT_ASC, 'products.sort'=>SORT_ASC])
(не проверял)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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