phplaraveleloquentlaravel-query-builder

How to order a Laravel query builder result by multiple columns?


I want to sort multiple columns in Laravel 4 by using the method orderBy() in Laravel Eloquent. The query will be generated using Eloquent like this:

SELECT *
FROM mytable
ORDER BY
  coloumn1 DESC, coloumn2 ASC

How can I do this?


Solution

  • Simply invoke orderBy() as many times as you need it. For instance:

    User::orderBy('name', 'DESC')
        ->orderBy('email', 'ASC')
        ->get();
    

    Produces the following query:

    SELECT * FROM `users` ORDER BY `name` DESC, `email` ASC