laravel分页方法链接不存在

laravel pagination Method links does not exist

我正在根据用户输入使用 eloquent 构建动态查询。

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

最后,用户可以在名为 count 的 html 输入字段中键入每页显示的记录数,或检查名为all的checkbox输入类型,以下代码在后台完成动态查询:

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

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

{{$result->links()}}

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

Method links does not exist.

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

links 方法不可调用。避免出现此错误的最佳做法是什么?

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

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

查看:

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