Как добавить несколько уровней сортировки в контроллере yii2 в качестве сортировки по умолчанию - PullRequest
0 голосов
/ 03 мая 2020

Я хочу отсортировать 3 уровня или рекламу. Первый уровень - премиум (статус = 2), затем признакам (статус = 1) и обычный (статус = 0). В представлении списка мне нужно сначала показать премиум-рекламу с сортировать данные des c. Сначала означает последнее сообщение в премиум-объявлениях. Затем я хочу показывать популярные объявления, например, как последнее сообщение, а затем обычные объявления, например, как последнее сообщение. И у меня есть сортировка по умолчанию, например

$dataProvider = $searchModel->search($params);
$defaultSort = $dataProvider->getSort();
$defaultSort->defaultOrder = ['date'=>SORT_DESC];

. Этот код будет сортировать весь список с датой сортировки по дате c порядка. Не фильтровать премиум, избранные и обычные. Поэтому я изменил это на

$defaultSort->defaultOrder = ['status' => SORT_DESC,'date'=>SORT_DESC];

Но ничего не произошло. Как я могу сделать эту 3-х уровневую сортировку в yii2

1 Ответ

1 голос
/ 03 мая 2020

Должно быть

$dataProvider = $searchModel->search($params);
$dataProvider->sort->defaultOrder =  ['status' => SORT_DESC,'date'=>SORT_DESC];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...