这可能有一个非常简单的解决方案,但我无法解决它。我需要对搜索结果进行分页,因此当我进入下一页时,它不会重置我的搜索结果。这是我想要分页的内容:
$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);
}
});
});
最佳答案
在你看来,使用这样的东西:
{!! $pets->appends(\Request::except('page'))->render() !!}
或
{{ $pets->appends(\Request::except('page'))->links() }}
上面的代码将创建分页链接并添加除 page
之外的所有参数。
关于php - Laravel - 分页并附加搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45585730/