我想分页结果,我显示了最后一个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
答案 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
试试这个。
你还需要尝试自己的代码,我觉得你的模型每次都会返回相同的3个结果。