Laravel에서 이전 및 다음 레코드 얻기
5482 단어 laravelprevnextlaravelphp
이전 리소스와 다음 리소스를 탐색할 수 있다는 것은 매우 편리한 기능입니다. 이렇게 하면 양쪽(왼쪽 및 오른쪽)의 레코드 간에 쉽게 탐색할 수 있습니다. 구현은 매우 간단하지만 모델에서 올바른 결과를 얻으려면 특정 논리를 명확하게 정의해야 합니다.
예제 시나리오
이 기능을 구현하는 방법에는 여러 가지가 있으며 가장 간단한 방법은 모델 ID를 사용하는 것입니다. ID가 자동으로 증가하므로 최신 게시물이 항상 가장 오래된 게시물보다 높은 숫자를 가질 것이라고 가정할 수 있습니다.
이전 및 다음 구현
이전 및 다음 게시물을 가져오려면 아래 코드를 사용합니다. 정의한 컨트롤러 내에 있고, 그렇지 않으면 애플리케이션에 적합한 다른 위치에 있음을 유의하십시오.
function show(int $id)
{
// get the current post
$post = Post::find($id);
// get previous post id
$previous = Post::where('id', '<', $post->id)->max('id');
// get next post id
$next = Post::where('id', '>', $post->id)->min('id');
return view('posts.show', compact('post', 'previous', 'next'));
}
위의 예에서는 "id"를 사용하여 쿼리하여 기본 게시물을 가져옵니다. 이전 및 다음 게시물을 얻기 위해 우리는 최저 및 최고 게시물 모델 "id"값을 가져와서 where 절을 사용합니다. 모델을 얻은 후에는 다른 모델과 비교하여 이전 게시물에 대해 "최대"를 얻고 다음 게시물에 대해 "최소"를 얻습니다. 이렇게 하면 기본적으로 기준과 일치하는 모델만 가져오도록 모델이 필터링됩니다.
이전 및 다음 비디오/에피소드
모델 "id"를 사용하지 않는 다른 시나리오에서는 숫자 값을 저장할 "episode_number"와 같은 열을 정의해야 합니다.
function show(int $id)
{
// get the current episode
$episode = Episode::find($id);
// get previous episode number
$previous = Episode::where('episode_number', '<', $post->episode_number)->max('episode_number');
// get next episode number
$next = Episode::where('episode_number', '>', $post->episode_number)->min('episode_number');
return view('episodes.show', compact('episode', 'previous', 'next'));
}
Reference
이 문제에 관하여(Laravel에서 이전 및 다음 레코드 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/postsrc/getting-previous-and-next-record-in-laravel-1mcl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)