我经常遇到一些问题,我希望对我的数据进行分页,但我也希望对所有数据进行常规计数,或者需要出于其他目的引用它。这是一个示例:
控制器
$issues = Script::where('status', 'Other')->orderBy('prescribe_date', 'desc')->paginate(10);
刀片
@foreach ($issues as $issue)
{{$issue->name}}
@endforeach
{{$issues->links}}
<br>
Total Issues: {{$issues->count()}}
foreach
问题的显示效果很好,但是总问题的count()
仅显示分页长度。我了解为什么会这样做,因此,作为一种解决方法,我一直在向Controller添加第二个查询:
$issues_raw = Script::where('status', 'Other')->orderBy('prescribe_date', 'desc');
然后,对于任何总数或需要对数据进行非分页访问的其他实例,请使用$issues_raw
。我的问题是:有什么办法可以通过仅使用1个查询而不是我当前使用的2个查询来解决此问题?感觉效率低下。
答案 0 :(得分:2)
您尝试过{{ $issues->total() }}
吗?
$results->count()
获取当前页面的项目数。
$results->total()
确定数据存储中匹配项的总数。 (使用simplePaginate时不可用。)
您可以在此处检查所有可能的功能:https://laravel.com/docs/5.7/pagination#paginator-instance-methods
答案 1 :(得分:1)
在Laravel 5中,您可以使用total()
:{{ $issues->total() }}
,将为您提供总记录
选中Docs