Давайте представим простую ситуацию - вам нужно написать Eloquent запрос и упорядочить результат по разнице в два столбца.Или какой-то другой расчет.Время применить необработанный запрос!
Простой orderBy:
User::where('created_at', '>', '2016-01-01')
->orderBy('updated_at', 'desc')
->get();
Теперь, что если нам нужно упорядочить по разнице между updated_at и creation_at ?Выглядит это так:
User::where('created_at', '>', '2016-01-01')
->orderByRaw('(updated_at - created_at) desc')
->get();
Этот метод orderByRaw () , который не упомянут в официальной документации Laravel, будет применять порядок order by без изменения чего-либо витак, итоговый запрос будет таким:
select * from users
where created_at > '2016-01-01'
order by (updated_at - created_at) desc
обновить мой ответ замените
->orderBy('views', 'des')->orderBy('created_at', 'des')->get()
на
->orderBy('views', 'desc')->orderBy('created_at', 'desc')->get()
Надеюсь, что поможет!