Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich verwandte Modelldatensätze mithilfe der „orderBy'-Beziehung von Laravel bestellen?
Verknüpfte Modelldatensätze in der richtigen Reihenfolge mit Laravels orderBy Relationship abrufen
In Laravel ist es beim Zugriff auf Daten von verwandten Modellen möglich, diese zu sortieren Ergebnisse mithilfe der orderBy-Methode. Der folgende Code ruft beispielsweise alle Kommentare eines Autors ab und zeigt sie in einer Liste an:
foreach($post->user->comments as $comment) { echo "<li>" . $comment->title . " (" . $comment->post->id . ")</li>"; }
Die Liste ist jedoch möglicherweise nicht in der gewünschten Reihenfolge angeordnet. Um die Ergebnisse basierend auf der Beitrags-ID zu ordnen, können Sie die Beziehung mit Abfragefunktionen erweitern:
public function comments() { return $this->hasMany('Comment')->orderBy('column'); }
Der Parameter „column“ gibt die Spalte an, nach der sortiert werden soll.
Für mehr Flexibilität können Sie dem Benutzer ermöglichen, die Spalte „orderBy“ über eine Controller-Methode anzugeben:
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 } }
Diese Methode ermöglicht eine dynamische Sortierung der zugehörigen Modelldatensätze basierend auf Benutzereingaben und ermöglicht so eine größere Flexibilität bei der Anzeige der Ergebnisse .
Das obige ist der detaillierte Inhalt vonWie kann ich verwandte Modelldatensätze mithilfe der „orderBy'-Beziehung von Laravel bestellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!