Laravel,如果我操作返回的Eloquent集合,查询太多

时间:2018-11-19 00:14:10

标签: php laravel laravel-5 eloquent

我正在使用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

1 个答案:

答案 0 :(得分:1)

在获取关系时,集合是一种惰性评估。将其转换为数组时,需要运行更多查询以获取更多数据。如果它是一个集合,则它是一个可撤销的对象,并且可以进一步链接方法以获取关系,并且只能根据后续调用进行操作。