我们只能在相同的雄辩查询中获得总记录数和第一条记录吗?
我知道我们可以通过以下雄辩的查询获得总记录:
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();
答案 0 :(得分:1)
创建查询时,Laravel在后台使用newQuery()
方法创建查询生成器的新实例,该查询可以根据需要重复使用多次
$query = Model::where('...')->whereHas('...')->orderBy('...');
[
'count' => $query->count(),
'collection' => $query->get(),
'first' => $query->first()
]
LengthAwarePaginator
的{{1}}方法也会发生类似的情况。看看source code。