Возможно ли без дублирования кода реализовать сортировку по различным полям в таблице?
доброго дня, нужно реализовать на бекенде сортировку записей из таблицы по различным полям которые берутся с помощью Doctrine QueryBuilder и выдать на rest api endpoint, можно ли как-то параметризовать запрос в базу так чтобы не дублируя в десятке методов запрос на выборку получить записи отсортированные по одному из полей?
Если оперировать текстом запроса, то добавьте параметр в 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.
Кейс можно встраивать и в подзапросы, если у вас сложное построение запроса.