我正在try 优化我的symfony项目,并想知道当我从控制器将实体对象传递给Twig模板时,实体对象是从数据库中完全获取(所有字段),还是只从模板中使用的字段中获取?
假设我有一个book
实体,它有title
和abstract
个字段.在控制器中,我从各自的存储库中获取所有的book
:
$books = $booksRepository->findAll();
然后将其传递给Twig模板:
return $this->render('books.html.twig', [
'books' => $books
]);
然后,在books.html.twig
中,我迭代了books
对象,但只使用了title
字段:
{% for book in books %}
Title: {{ book.title }}<br>
{% endfor %}
我想知道symfony是否也在从数据库中读取abstract
字段.当然,这是一个例子,生产项目可能会有拥有更多油田的实体.因此,我假设在某些网页上获取未使用的字段可能会给应用程序和数据库带来额外的负载.如果我最初的问题的答案是肯定的,那么我也对用来避免获取未使用的字段的技术感到好奇.
我试图调试symfony和Doctrine类,但最终在使用的类数量上迷路了,也找不到我的问题的答案.