laravel - 我们能否仅在同一个 eloquent 查询中获得总记录数和第一条记录?
问题描述
我们能否仅在同一个 eloquent 查询中获得总记录数和第一条记录?
我知道我们可以通过以下雄辩的查询获得总记录:
1. Model::count();
2. Collection Method
Model::all()->count();
我们可以像这样得到第一条记录:
Model::first();
我有一个相同的解决方案,即
$data = Model::all();
1. $count = count($data);
2. $count = $data->count();
对于第一行/数据
1. $firstRecord = $data[0];
2. $firstRecord = $data->first();
解决方案
当您创建查询时,Laravel 在后台使用 方法创建查询构建器的新实例newQuery()
,此查询可以根据需要重复使用多次
$query = Model::where('...')->whereHas('...')->orderBy('...');
[
'count' => $query->count(),
'collection' => $query->get(),
'first' => $query->first()
]
LengthAwarePaginator
'方法也会发生类似的事情paginate()
。看看源代码。
推荐阅读
- jquery - 用于测试 SpreadJS 的 Selenium 驱动程序
- java - android studio中滚动条下按钮中的文本调整
- javascript - 我按两次提交后,Ajax 工作
- node.js - 在 Sails.JS 中调用多个控制器
- node.js - Mac安装openssl,找不到环境
- java - 我们可以在 java 中使用 Scanner(System.in).nextInt() 吗?
- foreign-keys - 带有实体框架的 ASP NET MVC Core 2 将主键 ID 保存到不是关系列的列
- c# - c# httpwebrequest 无法读取/查看 cookie (connect-sid)
- c# - C# ASP.NET 从服务器轮询 XML 并缓存它
- laravel - 将 SQL 转换为 Laravel Eloquent