Laravel Fasih: Pengurutan hasil dari semua()

I'm terjebak pada tugas yang sederhana. Aku hanya ingin agar hasil yang datang dari panggilan ini

$results = Project::all();

Di mana Proyek adalah sebuah model. I've mencoba ini

$results = Project::all()->orderBy("name");

Tapi itu tidak't bekerja. Yang merupakan cara yang lebih baik untuk mendapatkan semua data dari tabel dan membuat mereka memerintahkan?

Larutan

Anda benar-benar dapat melakukan hal ini dalam query.

$results = Project::orderBy('name')->get();

Ini akan mengembalikan semua hasil dengan urutan yang tepat.

Komentar (2)

Anda masih bisa menggunakan sortir (pada kumpulan level) bukan orderBy (pada tingkat permintaan) jika anda masih ingin menggunakan semua() sejak ia mengembalikan benda-benda koleksi.

Urutan

$results = Project::all()->sortBy("name");

Urutan

$results = Project::all()->sortByDesc("name");

Periksa dokumentasi tentang Koleksi untuk rincian lebih lanjut.

https://laravel.com/docs/5.1/collections

Komentar (5)

Selain itu, untuk menopang mantan jawaban, itu bisa diselesaikan dan juga baik dalam turun desc atau ascending asc pesanan dengan menambahkan baik sebagai parameter kedua.

$results = Project::orderBy('created_at', 'desc')->get();

Semoga ini bisa membantu.

Komentar (0)

2017 update


Laravel 5.4 menambahkan orderByDesc() metode untuk query builder:

$results = Project::orderByDesc('name')->get();
Komentar (0)

Saat anda membutuhkan hasil untuk tanggal desc

$results = Project::latest('created_at')->get();
Komentar (0)

MELAKUKAN INI:

$results = Project::orderBy('name')->get();

DON'T MELAKUKAN HAL INI:

$results = Project::all()->sortBy('name');

MENGAPA? Secara singkat, pendekatan pertama lebih cepat dari pendekatan kedua.

Komentar (1)

Catatan, anda dapat melakukan:

$results = Project::select('name')->orderBy('name')->get();

Ini menghasilkan sebuah query seperti:

"SELECT name FROM proyect ORDER BY 'name' ASC"

Dalam beberapa aplikasi ketika DB tidak dioptimalkan dan query yang lebih kompleks, dan anda perlu mencegah menghasilkan ORDER BY dalam menyelesaikan SQL, anda dapat melakukan:

$result = Project::select('name')->get();
$result = $result->sortBy('name');
$result = $result->values()->all();

Sekarang adalah php yang memesan hasil.

Komentar (0)

Check out sortir metode untuk Fasih: http://laravel.com/docs/eloquent

Komentar (0)