我正在开发一个小型投资组合网站,我被困了一秒钟。
因此,用户可以上传他们的排序(使用jQuery sortable)
因此,当其他用户查看他/她的投资组合时,它会按排序顺序显示,当您点击图像时,它会显示一个大图像。
在这里,我想要一个上一个/下一个导航,以便人们可以导航。
它有效,但我有一个问题,所以目前在我的数据库中,带有8的图像是最后一个,但因为图像是按排序顺序显示的,而id为8的图像是最后一个是在第五个它停止返回下一个id,它应该在那里。
这是我试过的。
控制器
public function show($id)
{
$photo = $this->photo->find($id);
if(is_null($photo)) return App::abort('404');
$previous = $this->photo->where('id', '<', $photo->id)->where('user_id', '=', $photo->user_id)->orderBy('id', 'DESC')->first();
$next = $this->photo->where('id', '>', $photo->id)->where('user_id', '=', $photo->user_id)->orderBy('sort', 'ASC')->first();
$this->layout->title = "Saját képek";
$this->layout->content = View::make('photo::show')
->with('photo', $photo)
->with('previous', $previous)
->with('next', $next);
}
查看
<div class="ui page grid">
<div class="ui grid">
<div class="wide column">
<div class="ui segment">
<div class="photo-viev-nav">
@if(!empty($previous->id))
<a href="{{ URL::to( 'portfolio/pic/' . $previous->id ) }}" class="ui tiny button"><i class="ui left icon"></i> Vissza </a>
@endif
<strong>{{ $photo->user->name() }} potfóliója</strong>
@if(!empty($next))
<a href="{{ URL::to( 'portfolio/pic/' . $next->id ) }}" class="ui tiny button"> Következő <i class="ui right icon"></i></a>
@endif
</div>
<div class="photo-view">
{{ HTML::image($photo->photoOriginal(), '', array('class' => 'ui huge image')) }}
</div>
</div>
</div>
</div>
我试过的第二个是这个查询
$previous = $this->photo->where('id', '<', $photo->id)->where('user_id', '=', $photo->user_id)->orderBy('sort', 'ASC')->max('id');
$next = $this->photo->where('id', '>', $photo->id)->where('user_id', '=', $photo->user_id)->orderBy('sort', 'ASC')->min('id');
但是这个问题忽略了排序顺序
可以请某人给我一个提示吗?
答案 0 :(得分:0)
实验更多,我有点傻,而不是专注于我需要专注于排序顺序的ID,并基于这种方式得到id
正确查询
$previous = $this->photo->where('sort', '<', $photo->sort)->where('user_id', '=', $photo->user_id)->orderBy('', 'DESC')->first();
$next = $this->photo->where('sort', '>', $photo->sort)->where('user_id', '=', $photo->user_id)->orderBy('sort', 'ASC')->first();