我们能否在同一个 eloquent 查询中获取总记录数和第一条记录?
Can we get the total record count and the first record only in the same eloquent query?
我们可以在同一个eloquent查询中只得到总记录数和第一条记录吗?
我知道我们可以通过以下 eloquent 查询获得总记录:
1. Model::count();
2. Collection Method
Model::all()->count();
我们可以这样得到第一条记录:
Model::first();
我有一个相同的解决方案,即
$data = Model::all();
1. $count = count($data);
2. $count = $data->count();
第一个 row/data
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()
方法也会发生类似的情况。看看 source code.
我们可以在同一个eloquent查询中只得到总记录数和第一条记录吗?
我知道我们可以通过以下 eloquent 查询获得总记录:
1. Model::count();
2. Collection Method
Model::all()->count();
我们可以这样得到第一条记录:
Model::first();
我有一个相同的解决方案,即
$data = Model::all();
1. $count = count($data);
2. $count = $data->count();
第一个 row/data
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()
方法也会发生类似的情况。看看 source code.