Laravel:可以在可选分页中使用1个查询吗?

时间:2019-02-19 15:01:20

标签: php laravel

我经常遇到一些问题,我希望对我的数据进行分页,但我也希望对所有数据进行常规计数,或者需要出于其他目的引用它。这是一个示例:

控制器

$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个查询来解决此问题?感觉效率低下。

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