관련 모델 집합을 검색할 때 특정 방식으로 정렬하는 것이 유용한 경우가 많습니다. Laravel에서는 orderBy 메소드를 사용하여 이를 달성할 수 있습니다.
특정 게시물의 작성자가 게시한 모든 댓글을 반복하는 다음 시나리오를 고려해보세요.
foreach($post->user->comments as $comment) { echo "<li>" . $comment->title . " (" . $comment->post->id . ")</li>"; }
이 코드는 다음 목록을 표시합니다. comments:
I love this post (3) This is a comment (5) This is the second Comment (3)
게시물 ID별로 댓글을 정렬하려면 사용자 모델에서 hasMany 관계를 확장하세요.
public function comments() { return $this->hasMany('Comment')->orderBy('column'); }
열을 정렬하려는 열 이름으로 바꾸세요. . 이 경우 id를 사용합니다:
public function comments() { return $this->hasMany('Comment')->orderBy('id'); }
이렇게 하면 주석 순서가 다음과 같이 업데이트됩니다:
I love this post (3) This is the second Comment (3) This is a comment (5)
In 관계의 순서를 하드 코딩하는 것 외에도 쿼리 매개변수를 기반으로 순서를 지정할 수도 있습니다. 이렇게 하려면 Routes.php 파일에 경로를 정의하세요:
Route::get('users/{user}/comments', 'UserController@index');
그런 다음 UserController에 해당 인덱스 메서드를 만드세요:
public function index($user) { $column = Input::get('orderBy', 'defaultColumn'); $comments = $user->comments()->orderBy($column)->get(); // ... }
orderBy 매개변수를 사용하면 그에 따라 주석이 정렬됩니다. 예를 들어, 다음 URL을 방문하면 create_at 열을 기준으로 댓글이 정렬됩니다.
http://localhost/users/1/comments?orderBy=created_at
위 내용은 `orderBy`를 사용하여 Laravel에서 관련 모델을 주문하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!