Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Memesan Model Berkaitan dalam Laravel Menggunakan `orderBy`?

Bagaimana untuk Memesan Model Berkaitan dalam Laravel Menggunakan `orderBy`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-29 06:11:10615semak imbas

How to Order Related Models in Laravel Using `orderBy`?

Memesan Perhubungan dalam Laravel

Apabila mendapatkan set model yang berkaitan, selalunya berguna untuk memesannya dengan cara tertentu. Dalam Laravel, ini boleh dicapai menggunakan kaedah orderBy.

Pemesanan Mempunyai Banyak Perhubungan

Pertimbangkan senario berikut di mana anda mengulangi semua ulasan yang disiarkan oleh Pengarang siaran tertentu:

foreach($post->user->comments as $comment) {
    echo "<li>" . $comment->title . " (" . $comment->post->id . ")</li>";
}

Kod ini akan memaparkan senarai berikut ulasan:

I love this post (3)
This is a comment (5)
This is the second Comment (3)

Untuk memesan ulasan melalui ID pos, lanjutkan hubungan hasMany dalam model Pengguna:

public function comments()
{
    return $this->hasMany('Comment')->orderBy('column');
}

Ganti lajur dengan nama lajur yang anda ingin pesan mengikut . Dalam kes ini, kami akan menggunakan id:

public function comments()
{
    return $this->hasMany('Comment')->orderBy('id');
}

Ini akan mengemas kini susunan ulasan menjadi:

I love this post (3)
This is the second Comment (3)
This is a comment (5)

Pemesanan dengan Parameter Pertanyaan

Dalam selain pengekodan keras susunan dalam perhubungan, anda juga boleh memesan berdasarkan parameter pertanyaan. Untuk melakukan ini, tentukan laluan dalam fail route.php anda:

Route::get('users/{user}/comments', 'UserController@index');

Dan kemudian buat kaedah indeks yang sepadan dalam UserController anda:

public function index($user)
{
    $column = Input::get('orderBy', 'defaultColumn');
    $comments = $user->comments()->orderBy($column)->get();

    // ...
}

Apabila anda melawat laluan dengan orderBy parameter, ulasan akan dipesan sewajarnya. Contohnya, melawati URL berikut akan memesan ulasan mengikut lajur create_at:

http://localhost/users/1/comments?orderBy=created_at

Atas ialah kandungan terperinci Bagaimana untuk Memesan Model Berkaitan dalam Laravel Menggunakan `orderBy`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn