Order by using multiple columns and manually array field in Laravel?

By Hardik Savani January 25, 2016 Category : Laravel

If you want to sort multiple columns in Laravel by using orderBy(). Whenever you need to give multiple column in your query then you can use twice time orderBy() and give them. you can give multiple columns in laravel by following example :

Users Table :

idsite_idsub_site_idnameemail
147john[email protected]
234ram[email protected]
342ader[email protected]
431jay[email protected]
541yamee[email protected]

Multiple Columns OrderBy

$data = DB::table('users')

->select('users.*')

->orderBy('site_id', 'asc')

->orderBy('sub_site_id', 'asc')

->get();

Result :

idsite_idsub_site_idnameemail
431jay[email protected]
234ram[email protected]
541yamee[email protected]
342ader[email protected]
147john[email protected]

you can also give array in order by method, Laravel give facility to sort manual array in order by, following example through specific array in order by.

Result :

idsite_idsub_site_idnameemail
342ader[email protected]
147john[email protected]
431jay[email protected]
541yamee[email protected]
234ram[email protected]

we are using string in order by like pending, approved and rejected status then following example are useful.

$data = DB::table('users')

->select('users.*')

->orderByRaw(DB::raw("FIELD(status, 'Pending', 'Approved', 'Rejected')"))

->get();

if you want to give ‘ASC’ or ‘DESC’ order in query then following example :

$data = DB::table('users')

->select('users.*')

->orderByRaw(DB::raw("FIELD(sub_site_id, 2, 7, 1, 4) DESC"))

->get();

Try this....

Tags :

We are Recommending you