透過Laravel 的orderBy 關係依序擷取相關模型記錄
在Laravel 中,從相關模型存取資料時,可以使用orderBy方法的結果。例如,以下程式碼會擷取作者的所有註解並將其顯示在清單中:
foreach($post->user->comments as $comment) { echo "<li>" . $comment->title . " (" . $comment->post->id . ")</li>"; }
但是,該清單可能未按所需順序排序。若要根據貼文 ID 對結果進行排序,您可以使用查詢函數擴充關係:
public function comments() { return $this->hasMany('Comment')->orderBy('column'); }
'column' 參數指定要排序的欄位。
為了更靈活,您可以允許使用者透過控制器方法指定orderBy 欄位:
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 } }
此方法提供基於使用者的相關模型記錄的動態排序輸入,允許更靈活地顯示結果。
以上是如何使用 Laravel 的「orderBy」關係來排序相關模型記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!