Saya ingin mengurutkan beberapa kolom di Laravel 4 dengan menggunakan metode orderBy()
di Laravel Eloquent. Kueri akan dihasilkan menggunakan Eloquent seperti ini:
SELECT *
FROM mytable
ORDER BY
coloumn1 DESC, coloumn2 ASC
Bagaimana saya bisa melakukan ini?
User::orderBy('name', 'DESC') ->orderBy('email', 'ASC') ->get();
Jawaban:
Cukup panggil
orderBy()
sebanyak yang Anda butuhkan. Misalnya:Menghasilkan kueri berikut:
sumber
User::orderBy(array('name'=>'desc', 'email'=>'asc'))
$user->orders = array(array('column' => 'name', 'direction' => 'desc'), array('column' => 'email', 'direction' => 'asc'));
get
ataufirst
), panggilorderBy
saja. Lain, tidak.Anda dapat melakukan seperti yang telah ditentukan oleh @rmobis dalam jawabannya, [Menambahkan sesuatu yang lebih ke dalamnya]
Menggunakan
order by
dua kali:dan cara kedua untuk melakukannya adalah,
Menggunakan
raw order by
:Keduanya akan menghasilkan permintaan yang sama seperti ikuti,
Seperti @rmobis ditentukan dalam komentar jawaban pertama Anda bisa lewat seperti array untuk memesan dengan kolom seperti ini,
satu lagi cara untuk melakukannya adalah
iterate
dalam lingkaran,Semoga bermanfaat :)
sumber
Berikut ini adalah penghindaran lain yang saya buat untuk kelas repositori dasar di mana saya perlu memesan dengan jumlah kolom yang berubah-ubah:
Sekarang, Anda dapat membuat panggilan Anda seperti ini:
sumber