返回DTO而不是用户实体

时间:2016-07-06 09:16:15

标签: entity-framework symfony twig

我正在使用Symfony和Twig。在Twig中,我可以访问app.user变量。此变量返回登录用户的自定义用户实体。

虽然这很棒,但我想返回用户实体的解析DTO。这是因为用户实体与其他实体的关系数量。没错,我需要在登录用户的每个页面上都有这些数据,但它也会将用户实体变成一个大对象。

在Twig中调用app.user时有没有办法返回解析后的DTO?

1 个答案:

答案 0 :(得分:0)

基本上,Doctrine关系应该是Lazy加载的(=只有在使用这些属性时才加载)。

见这里:http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/working-with-objects.html#entity-object-graph-traversal

所以你不能通过避免关系被水化来优化它,因为它已经是默认行为。

要保持关系,您可以使用fetch =“EAGER”

配置它们