让我们说我有一个索引页面,用分页显示数据库中的所有数据。我可以在用户执行搜索后显示正确的数据和分页,但是当我点击第二页时,它没有显示正确的数据。
public function getNewsletterSearch(Request $request) {
$keyword = $request->news_search;
$searchData = DB::table('tbl_contents')
->join('tbl_files', function ($join) use($keyword) {
$join->on('tbl_contents.unique', '=', 'tbl_files.unique')
->where('tbl_contents.record_type', '=', 'Newsletter')
->where('tbl_contents.title', 'LIKE', '%' . $keyword . '%')
->where('tbl_files.order_id', '=', 1);
})
->orderBy('tbl_contents.id', 'DESC')
->select('tbl_contents.*', 'tbl_files.file_name')
->paginate(6);
$searchData->setPageName('page_result');
return view('newsletter.index')->with(['searchData' => $searchData])->with('search', $keyword);
}
以下是观点:
<div class = "col-xs-12">
<nav aria-label = "Page navigation">
{{with(new App\Pagination\CustomPresenter($searchData->appends('page_result', Illuminate\Support\Facades\Input::get('page_result'))))->render()}}
</nav>
</div>
这是我创建的搜索功能。我可以从搜索结果中知道在第2页上显示正确数据的解决方案是什么?
答案 0 :(得分:0)
这是我在搜索场景中使用的完整索引函数,看一看并进行必要的修改。
public function getNewsletterSearch()
{
$keyword = request()->get('news_search');
$searchData = DB::table('tbl_contents')
->join('tbl_files', function ($join) use($keyword) {
$join->on('tbl_contents.unique', '=', 'tbl_files.unique')
->where('tbl_contents.record_type', '=', 'Newsletter')
->where('tbl_contents.title', 'LIKE', '%' . $keyword . '%')
->where('tbl_files.order_id', '=', 1);
})
->orderBy('tbl_contents.id', 'DESC')
->select('tbl_contents.*', 'tbl_files.file_name');
$searchData= $searchData->paginate(6)->appends(request()->query());
return view('category.index',compact('searchData'));
}
视图文件中的
<div class="col-sm-12 col-md-12"><span class="pull-right">{{$searchData->links()}}</span></div>