我正在使用Laravel 5.7和2个表之间的一些基本关系
当我尝试对返回的Eloquent集合执行任何操作时,
我发现DebugBar记录了很多查询
例如以下示例:
$articles = \App\Article::get();
return count($articles->toArray());
// DebugBar records about 395 queries
相反,如果使用集合计数助手
$articles = \App\Article::get();
return $articles->count();
// DebugBar records only 2 queries
答案 0 :(得分:1)
在获取关系时,集合是一种惰性评估。将其转换为数组时,需要运行更多查询以获取更多数据。如果它是一个集合,则它是一个可撤销的对象,并且可以进一步链接方法以获取关系,并且只能根据后续调用进行操作。