这可能有一个非常简单的解决方案,但我一直无法解决它。我需要对搜索结果进行分页,因此当我进入下一页时,它不会重置我的搜索结果。这是我想要分页:Laravel - Paginate和Append搜索结果
$pets = DB:table('pets')
->where(function($q) use ($request){
$q->orWhere('name','LIKE','%'.$request->search.'%')
})
->paginate(40)
上面的代码搜索我的数据库。如上所示,我可以使用paginate(40)
进行分页。例如,唯一的一点是,当我进入第二页时,搜索重置。我想要的是将搜索应用到所有页面。
我尝试使用appends()
与$pets
,$q
和$request
,它们都没有工作。我也尝试了一些来自这里的答案,但没有得到任何结果。
从Laravel文档中,我猜测,你应该使用appends()
将搜索应用到所有页面?
编辑:
@foreach($pets as $pet)
<p>{{$pet->name}}</p>
@endforeach
分页:
{{$pet->links()}}
AJAX调用:
$("#filter").change(function() {
$value=$(this).val();
$.ajax({
type: "get",
url: "{{$pets->name}}",
data: {'search':$value},
success: function(data){
$('#results').html(data);
}
});
});
问题是,在第二页上你的'$ request'不包含搜索项。你使用GET还是POST? (使用GET,你会没事的)。 – Kyslik
你能告诉我们你调用这个函数的代码吗? – Maraboc
@Kyslik我使用'GET'进行搜索。 – spacetravel