Задать вопрос
@SlimSavernake

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

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

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


Категории в этом списке сортируются нормально в специальному полю sort, а продукты в категориях сортируются по ID, но у продуктов тоже есть поле sort и хотелось бы тоже по нему отсортировать.
Подскажите, пожалуйста, как это можно сделать?
  • Вопрос задан
  • 70 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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])
(не проверял)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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