我们只能在雄辩的查询中获得总记录数和第一条记录吗?

时间:2019-09-30 08:00:59

标签: laravel laravel-5 eloquent laravel-4

我们只能在相同的雄辩查询中获得总记录数和第一条记录吗?

我知道我们可以通过以下雄辩的查询获得总记录:

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();

1 个答案:

答案 0 :(得分:1)

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


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

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

LengthAwarePaginator的{​​{1}}方法也会发生类似的情况。看看source code