Bagaimanakah Saya Boleh Memesan Hubungan Fasih dalam Laravel?

DDD
Lepaskan: 2024-11-24 05:02:09
asal
487 orang telah melayarinya

How Can I Order Eloquent Relationships in Laravel?

Laravel: Memesan Perhubungan dengan orderBy

Apabila bekerja dengan perhubungan dalam Laravel, ia boleh berguna untuk memesan hasil dengan cara tertentu. Sebagai contoh, anda mungkin mahu memaparkan ulasan yang dikaitkan dengan siaran dalam susunan kronologi.

Pertimbangkan gelung berikut, yang berulang melalui semua ulasan yang disiarkan oleh pengarang siaran tertentu:

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

Gelung ini mungkin menghasilkan output seperti:

I love this post (3)
This is a comment (5)
This is the second Comment (3)
Salin selepas log masuk

Untuk memesan senarai mengikut post_id, anda boleh melanjutkan hubungan ulasan dengan orderBy fungsi:

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

Sekarang, apabila anda mengulangi ulasan, ia akan dipaparkan dalam susunan yang diingini:

This is the second Comment (3)
I love this post (3)
This is a comment (5)
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan kaedah yang lebih fleksibel menggunakan orderBy berfungsi sebagai input, serupa dengan contoh semakan input Input::get():

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

class Controller
{
    public function index()
    {
        $column = Input::get('orderBy', 'defaultColumn');
        $comments = User::find(1)->comments()->orderBy($column)->get();

        // use $comments in the template
    }
}
Salin selepas log masuk

Dengan melepasi orderBy column sebagai input, anda boleh memesan komen secara dinamik berdasarkan input pengguna. Ingat untuk melaksanakan semakan input yang betul untuk tujuan keselamatan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memesan Hubungan Fasih dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan