eyl*_*lay 4 pagination eloquent laravel-5.5
我正在使用基于用户输入的 eloquent 构建动态查询。
$query = \App\Model::query();
if($this == request('that')){
$query->where(...); // building dynamic query based on user inputs
}
Run Code Online (Sandbox Code Playgroud)
最后,用户可以在名为count的 html 输入字段中键入每页显示的记录数或选中名为all的复选框输入类型,以下代码在后端完成动态查询:
if (request('all')) {
$result = $query->get();
}else {
$result = $query->paginate(request('count'));
}
Run Code Online (Sandbox Code Playgroud)
同样在前端,我有以下代码来显示分页链接:
{{$result->links()}}
Run Code Online (Sandbox Code Playgroud)
问题是当用户选择显示我们面临以下错误的所有记录时:
方法链接不存在。
当我们通过get()方法检索对象时,链接方法不可调用。为了不面对此错误,最佳做法是什么?
这是因为->get()方法返回集合而不是分页器模型Illuminate\Pagination\LengthAwarePaginator。所以我可以建议你从你的控制器发送一些附加变量,指示你是否需要 execute $result->links()。
控制器:
return view('yourView', [showPagination => is_null(request('all'))]);
Run Code Online (Sandbox Code Playgroud)
看法:
@if($showPagination)
{{$result->links()}}
@endif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5355 次 |
| 最近记录: |