Wie kann ich eloquente Beziehungen in Laravel bestellen?

DDD
Freigeben: 2024-11-24 05:02:09
Original
486 Leute haben es durchsucht

How Can I Order Eloquent Relationships in Laravel?

Laravel: Beziehungen mit orderBy ordnen

Bei der Arbeit mit Beziehungen in Laravel kann es nützlich sein, die Ergebnisse auf eine bestimmte Weise zu ordnen. Beispielsweise möchten Sie möglicherweise mit einem Beitrag verknüpfte Kommentare in chronologischer Reihenfolge anzeigen.

Betrachten Sie die folgende Schleife, die alle vom Autor eines bestimmten Beitrags geposteten Kommentare durchläuft:

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

Diese Schleife kann eine Ausgabe erzeugen wie:

I love this post (3)
This is a comment (5)
This is the second Comment (3)
Nach dem Login kopieren

Um die Liste nach post_id zu ordnen, können Sie die Kommentarbeziehung mit orderBy erweitern Funktion:

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

Wenn Sie nun die Kommentare durchlaufen, werden sie in der gewünschten Reihenfolge angezeigt:

This is the second Comment (3)
I love this post (3)
This is a comment (5)
Nach dem Login kopieren

Alternativ können Sie die flexiblere Methode verwenden orderBy-Funktion als Eingabe, ähnlich dem Input::get()-Eingabeprüfungsbeispiel:

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
    }
}
Nach dem Login kopieren

Indem Sie die orderBy-Spalte als Eingabe übergeben, können Sie dynamisch bestellen Die Kommentare basieren auf Benutzereingaben. Denken Sie daran, aus Sicherheitsgründen eine ordnungsgemäße Eingabeprüfung durchzuführen.

Das obige ist der detaillierte Inhalt vonWie kann ich eloquente Beziehungen in Laravel bestellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage