laravel pagination方法链接不存在

时间:2018-02-05 10:52:20

标签: pagination eloquent laravel-5.5

我正在使用基于用户输入的eloquent构建动态查询。

$query = \App\Model::query();
if($this == request('that')){
    $query->where(...); // building dynamic query based on user inputs
}

最后,用户可以在名为 count 的html输入字段中键入每页显示的记录数,或者选中名为 all <的复选框输入类型/ em> 以下代码在后端完成动态查询:

if (request('all')) {
    $result = $query->get();
}else {
    $result = $query->paginate(request('count'));
}

同样在前端,我有以下代码来显示分页链接:

{{$result->links()}}

问题是当用户选择显示我们在错误后面临的所有记录时:

  

方法链接不存在。

当我们通过get()方法检索对象时,

links方法不可调用。为了不面对这个错误,最佳做法是什么?

1 个答案:

答案 0 :(得分:4)

这是因为->get()方法返回集合而不是分页器模型Illuminate\Pagination\LengthAwarePaginator。所以我建议您从控制器发送一些附加变量,指示是否需要执行$result->links()
控制器:

return view('yourView', [showPagination => is_null(request('all'))]);

查看:

@if($showPagination)
   {{$result->links()}}
@endif