Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Memesan Rekod Model Berkaitan Menggunakan Perhubungan `orderBy` Laravel?

Bagaimanakah Saya Boleh Memesan Rekod Model Berkaitan Menggunakan Perhubungan `orderBy` Laravel?

Barbara Streisand
Barbara Streisandasal
2024-11-20 22:24:13824semak imbas

How Can I Order Related Model Records Using Laravel's `orderBy` Relationship?

Mengambil Rekod Model Berkaitan Mengikut Susunan dengan pesanan LaravelBy Relationship

Dalam Laravel, apabila mengakses data daripada model berkaitan, adalah mungkin untuk mengisih keputusan menggunakan kaedah orderBy. Sebagai contoh, kod berikut mendapatkan semula semua ulasan oleh pengarang dan memaparkannya dalam senarai:

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

Walau bagaimanapun, senarai itu mungkin tidak dipesan dalam urutan yang diingini. Untuk memesan hasil berdasarkan ID siaran, anda boleh melanjutkan hubungan dengan fungsi pertanyaan:

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

Parameter 'lajur' menentukan lajur untuk diisih.

Untuk lebih fleksibiliti , anda boleh membenarkan pengguna untuk menentukan lajur orderBy melalui kaedah pengawal:

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
    }
}

Kaedah ini menyediakan susunan dinamik model berkaitan rekod berdasarkan input pengguna, membolehkan lebih fleksibiliti dalam paparan hasil.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memesan Rekod Model Berkaitan Menggunakan Perhubungan `orderBy` Laravel?. 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