Saya terjebak pada tugas sederhana. Saya hanya perlu memesan hasil yang datang dari panggilan ini
$results = Project::all();
Di mana Project
seorang model. Saya sudah mencoba ini
$results = Project::all()->orderBy("name");
Tapi itu tidak berhasil. Mana cara yang lebih baik untuk mendapatkan semua data dari sebuah tabel dan membuatnya dipesan?
laravel
laravel-4
eloquent
sql-order-by
MatterGoal
sumber
sumber
get()
vsall()
: stackoverflow.com/questions/34587457/…Anda masih bisa menggunakan sortBy (di tingkat koleksi) alih-alih orderBy (di tingkat permintaan) jika Anda masih ingin menggunakan semua () karena mengembalikan koleksi objek.
Urutan Naik
Urutan Turun
Lihat dokumentasi tentang Koleksi untuk lebih jelasnya.
https://laravel.com/docs/5.1/collections
sumber
orderBy
pada tingkat permintaan?sortBy()
terjadi di dalam Laravel Engine (dalam PHP), sementaraorderBy()
itu dilakukan dalam database. Tentunya basis data akan lebih cepat di hampir semua situasi yang mungkin, dan dengan bertambahnya set data Anda, perbedaan kinerja juga akan semakin besar. Saya ingin mendengar pendapat orang lain tentang ini.Selain itu, hanya untuk menopang jawaban sebelumnya, bisa juga disortir dalam urutan menurun
desc
atau naikasc
dengan menambahkan parameter kedua.sumber
Pembaruan 2017
Laravel 5.4 menambahkan metode orderByDesc () ke pembuat kueri:
sumber
Meskipun Anda perlu hasil untuk tanggal sebagai desc
sumber
MELAKUKAN HAL INI:
JANGAN LAKUKAN INI:
MENGAPA? Secara singkat, pendekatan pertama lebih cepat dari pendekatan kedua.
sumber
Lihat
sortBy
metode untuk Eloquent: http://laravel.com/docs/eloquentsumber
Catatan, Anda bisa melakukan:
Ini menghasilkan permintaan seperti:
Di beberapa aplikasi ketika DB tidak dioptimalkan dan kueri lebih kompleks, dan Anda perlu mencegah menghasilkan ORDER OLEH di SQL selesai, Anda dapat melakukan:
Sekarang adalah php yang memesan hasilnya.
sumber
Instruksi Anda memerlukan panggilan untuk mendapatkan, karena itu membawa catatan dan memesan oleh katalog
Contoh:
Dalam contoh data disaring oleh "di mana" dan membawa catatan lebih besar dari 20 dan memesan dengan pesanan dari tinggi ke rendah.
sumber