Есть 2 таблицы, paper и paper_category
в обеих есть поле position по которому мне надо их отсортировать.
Вывести надо так
CATEGORY1
-paper1
-paper2
CATEGORY2
-paper5
-paper8
Делаю так
$array = Paper::find()->select(['id', 'title', 'cat_id', 'position'])->asArray()
->with(['category' => function($query) {
$query->orderBy(['paper_category.position' => SORT_DESC]);
}])
->orderBy(['paper.position' => SORT_DESC])
->all();
return ArrayHelper::map($array, 'id', 'title', 'category.title');
По бумаге сортирует, по категориям нет.