2017-09-29 1 views
1

내 사이트에서 사용자가 이미지를 업로드 할 수 있습니다. 이미지에는 자체 페이지가 있습니다.Laravel 다음/이전 쿼리와 조건 및 루프 around

$user = User::where('username', $username)->first(); 
$image = Images::where('url_title', $URLtitle)->where('created_by', $user->id)->first(); 

이 페이지에서 사용자의 다음/이전 이미지로 이동하는 이전/다음 버튼이 필요합니다. 그러나, 나는 이것들을 돌아 다니기를 원한다.

예를 들어, 사용자가 3 개의 이미지를 업로드했다고 가정 해 봅시다. , 당신은 이미지 55 인 경우 ID가 33, 55, 및 61

와 이미지는 이전 이미지 (33)이 될 것입니다, 당신은 이미지 (61)에 있다면 다음 이미지는, 그러나 61

것 다음 이미지는 33 주위를 반복합니다.

어떻게 이러한 링크를 만들 수있는 쿼리를 만들 수 있습니까?

+0

왜 자바 스크립트에서 이것을하지 않습니까? –

+0

지금 사용중인 코드를 사용하면 ID가 33 인 이미지 만 표시됩니까? –

+0

@JamesRiady 아니요, 단지 예일뿐입니다. –

답변

1

당신이 몇 가지 추가 쿼리를 실행 괜찮다면 당신이 할 수 있습니다 : 선택한 이미지의 각면에 당신에게 가장 가까운 이미지를 제공한다

$query = Images::where('url_title', $URLtitle)->where('created_by', $user->id); 
$image = $query->first(); 
$prevImage = $query->where('id', '<', $image->id)->orderBy('id', 'desc')->first(); 
$nextImage = $query->where('id', '>', $image->id)->orderBy('id', 'asc')->first(); 

합니다.

+0

$ image는 올바른 이미지를 반환하지만 $ prevImage 및 $ nextImage는 null을 반환합니다. –

+0

글쎄, 당신의 대답은 내가 다음과 같이 바꿔 말할 때 작동한다 : $ prevImage = Images :: where ('created_by', $ userID) -> ('id', '<', $image-> id) -> orderBy ('id ' 'desc') -> first(); –