如何在LaravelEloquent中获取总结果数

来自菜鸟教程
跳转至:导航、​搜索

处理数据库查询结果时,仅获取结果集中的总行数通常很有用,而不是使用常规查询提取完整的数据集内容。 Eloquent 提供了一些不同的 聚合方法 ,它们返回一个标量而不是 Eloquent 对象,包括 count()max()sum() 等。 这些都是通过内置于每个 Eloquent 模型中的固有 查询构建器 提供的。

在本系列的这一部分中,您将更新主应用程序视图以显示每个列表中的链接总数。

在代码编辑器中打开文件 resources/views/index.php

resources/views/index.php

找到使用 subtitle 类设置样式的段落,其中包含呈现应用程序菜单的 foreach 循环:

...
<p class="subtitle">
     @foreach ($lists as $list)<a href="{{ route('link-list', $list->slug) }}" title="{{ $list->title }}" class="tag is-info is-light">{{ $list->title }}</a> @endforeach
</p>
...

要获取每个列表中的链接总数,您可以从 LinkList 类上定义的 $list->links() 关系方法中访问查询构建器,并调用 count() 方法可通过查询生成器获得:

{{ $list->links()->count() }}

更新 foreach 循环内的代码以包含 count() 方法调用,它将显示列表中的链接数。 确保将其放在 <a> 标记内和列表标题之后。 您可以将此信息包含在括号中,以便在呈现的 HTML 输出中提高可读性。

完成后代码应如下所示:

 <p class="subtitle">
      @foreach ($lists as $list)<a href="{{ route('link-list', $list->slug) }}" title="{{ $list->title }}" class="tag is-info is-light">{{ $list->title }} ({{ $list->links()->count() }})</a> @endforeach
 </p>

完成后保存文件。 然后,在浏览器上重新加载主应用程序页面:

http://localhost:8000

您将获得如下所示的页面,在顶部菜单中显示每个列表中包含的链接总数:

在本系列的下一部分中,您将学习如何限制查询中的结果数量,以及如何在 Laravel Eloquent 中对结果进行分页。