我正在使用基于用户输入的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方法不可调用。为了不面对这个错误,最佳做法是什么?
答案 0 :(得分:4)
这是因为->get()
方法返回集合而不是分页器模型Illuminate\Pagination\LengthAwarePaginator
。所以我建议您从控制器发送一些附加变量,指示是否需要执行$result->links()
。
的控制器:
return view('yourView', [showPagination => is_null(request('all'))]);
查看:
@if($showPagination)
{{$result->links()}}
@endif