Возможно ли без дублирования кода реализовать сортировку по различным полям в таблице?

доброго дня, нужно реализовать на бекенде сортировку записей из таблицы по различным полям которые берутся с помощью Doctrine QueryBuilder и выдать на rest api endpoint, можно ли как-то параметризовать запрос в базу так чтобы не дублируя в десятке методов запрос на выборку получить записи отсортированные по одному из полей?
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Если оперировать текстом запроса, то добавьте параметр в order by.
order by case 
            when :order_param = 1 then col_1
            when :order_param = 2 then col_2
           end,
           case 
            when :order_param = 1 then col_2
            when :order_param = 2 then col_1
           end

Это значит, если задан, :order_param = 1, то сортировка будет эквивалентна выражению order by col_1, col_2.
Если :order_param = 2, то order by col_2, col_1.
Кейс можно встраивать и в подзапросы, если у вас сложное построение запроса.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы