显示更多paginate项目

时间:2018-01-24 18:20:05

标签: laravel eloquent

我想分页结果,我显示了最后一个ID($ id),我将where('id', '<', $id)orderBy('id', 'desc')放在模型中,但没有工作......

    public function user_load_more($id, $friendly_url)
    {
$user = User::where('friendly_url', '=', $friendly_url)
    ->with('userProfile.get_following')
    ->with(['shares_load_more' => function($query) use($id) {
    $query->where('id', '<', $id);
    }])->orderBy('id', 'desc')->first();

        return view("site.list.user.links", compact("user"));
    }

MODEL:

public function shares_load_more()
{
return $this->hasMany(Share::class, 'user_id', 'id')->select('id', 'link_id', 'user_id', 'shared_in', 'content', 'created_at')->take(3)->orderBy('id', 'desc')->where('type', '=', 0);
}

但是这会返回相同的最后一项,没有继续不工作的地方......

示:

1
2
3

接下来显示:

1
2
3

1 个答案:

答案 0 :(得分:0)

“不要再重新发明轮子”。

我们使用像laravel这样的框架来简化我们的工作。所以laravel已经建立了这样做而不是从头开始构建它。

看看实际上有多容易......。

public function user_load_more($id, $friendly_url)
    {
$user = User::where('friendly_url', '=', $friendly_url)
    ->with('userProfile.get_following')
    ->with(// ……………)
    ->paginate(3);

        return view("site.list.user.links", compact("user"));
    }

您的观点应该如下所示,

<div class="container">
    @foreach ($users as $user)
         // user detail
    @endforeach
</div>
{{ $users->links() }}
// this will show the next links

试试这个。

Database: Pagination

你还需要尝试自己的代码,我觉得你的模型每次都会返回相同的3个结果。