首页 > 解决方案 > 我们能否仅在同一个 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();

标签: laravellaravel-5eloquentlaravel-4

解决方案


当您创建查询时,Laravel 在后台使用 方法创建查询构建器的新实例newQuery(),此查询可以根据需要重复使用多次


$query = Model::where('...')->whereHas('...')->orderBy('...');

[
  'count' => $query->count(),
  'collection' => $query->get(),
  'first' => $query->first()
]

LengthAwarePaginator'方法也会发生类似的事情paginate()。看看源代码


推荐阅读