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!