Задать вопрос
@matios
Technical Team Lead

Как сделать правильную сортировку в CGridView?

Привет.
Есть таблица, в которой присутствуют колонки due_date, status
`due_date` date DEFAULT NULL,
`status` enum('processing','new','progress','pending','completed','deleted') DEFAULT 'processing',


На странице с помощью СGridView необходимо вывести данные из таблицы в следующем порядке:
1. Вначале должны быть строки у которых статус может быть processing || new || progress || pending + due_date ASC
2. И потом уже со статусом completed || deleted

В голову приходит только UNION, но пока не знаю как он будет вести себя с пагинатором, фильтром и т.д.
Есть какие-либо идеи? Может кто-то сталкивался с подобным?

Пример:
=== Дано ===
Задача 1 | 05.06.16 | completed
Задача 2 | 07.06.16 | progress
Задача 3 | 08.06.16 | deleted
Задача 4 | 09.06.16 | new
Задача 5 | 10.06.16 | new

=== Нужно получить ===
Задача 2 | 07.06.16 | progress
Задача 4 | 09.06.16 | new
Задача 5 | 10.06.16 | new
Задача 1 | 05.06.16 | completed
Задача 3 | 08.06.16 | deleted
  • Вопрос задан
  • 138 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@CodeKeeper
Symfony/Magento developer
Тебе скорее всего нужна мультисортировка.

SELECT * FROM yourtable
ORDER BY `DATE` DESC, `IMPORTANCE` DESC


Взято отсюда
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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