我正在尝试使用Laravel实现搜索功能。这是我应该返回搜索结果的方法:
$keyword = request('q');
$posts = Post::where('deleted', false)
->where(function($q) use($keyword) {
$q->where('title', 'like', '%' . $keyword . '%')
->orWhere('body', 'like', '%' . $keyword . '%');
})
->latest()
->paginate(5);
问题是,当我搜索超过5个结果的内容时,它会显示链接中的前5个结果和2个(例如)页面,但是当我点击第二个页面时,链接中有3个页面和某些页面这些帖子是重复的。我猜测封闭导致了这个问题,但我不知道如何修复它。
欢迎任何建议,谢谢! :)
答案 0 :(得分:0)
由于您正在使用请求中的数据,因此您需要将其附加到下一个请求中才能使用:
{{ $posts->appends(['q' => request('q')])->links() }}
来自the docs:
您可以使用
appends
方法附加到分页链接的查询字符串。