Как отсортировать выборку по статусам?

Имеются статусы записей: 1. Новое, 2. Просрочено, 3. В работе, 4. Решено, 5. Архивировано.
Каждая запись имеет только один из перечисленных статусов.
Необходимо вывести сначала просроченные, потом новые, а потом все остальные.
Как я понимаю, нужно выполнить
SELECT * FROM TABLE ORDER BY status_id=2 DESC, status_id=1 DESC, status_id ASC;

Пытаюсь выполнить
$dataProvider->query->orderBy(['status_id' => [2, 1]]);

Но эффекта нет. Помогите пожалуйста.
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ответы на вопрос 1
maksim92
@maksim92
Yii Framework
Сортировка настраивается посредством свойства sort дата провайдера
$dataProvider = new ActiveDataProvider([
     'query' => $query,
     'sort'=> [
     'attributes' => [
            'age',
            'name' => [
                'asc' => ['first_name' => SORT_ASC, 'last_name' => SORT_ASC],
                'desc' => ['first_name' => SORT_DESC, 'last_name' => SORT_DESC],
                'default' => SORT_DESC,
                'label' => 'Name',
            ],
        ],
 ]);


Заполните массив attributes параметрами по которым вам необходимо сортировать, и далее передавайте данные параметры через get строку запроса в виде ...?sort=-name
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bezlimit Москва
от 100 000 до 130 000 руб.
Sky Way Capital Москва
от 100 000 до 150 000 руб.
22 авг. 2019, в 02:23
60000 руб./за проект
22 авг. 2019, в 02:15
5000 руб./за проект
22 авг. 2019, в 01:00
300 руб./за проект