上一页/下一页使用Laravel链接

时间:2014-08-26 13:07:39

标签: laravel-4 navigation

我正在开发一个小型投资组合网站,我被困了一秒钟。

因此,用户可以上传他们的排序(使用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');

但是这个问题忽略了排序顺序

可以请某人给我一个提示吗?

1 个答案:

答案 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();