Laravel - Paginate和追加搜索结果

时间:2017-08-09 08:43:39

标签: php jquery laravel pagination

这可能是一个非常简单的解决方案,但我无法解决它。我需要对搜索结果进行分页,所以当我进入下一页时,它不会重置我的搜索结果。这是我想要分页的内容:

$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);
    }
});
});

1 个答案:

答案 0 :(得分:2)

在您的视图中使用以下内容:

{!! $pets->appends(\Request::except('page'))->render() !!}

{{ $pets->appends(\Request::except('page'))->links() }}

上面的代码将创建分页链接并添加除page之外的所有参数。