我想在我的Controller中加载一个实体,但不希望该实体包含所有字段。我之前使用Jms-Serializer,您可以使用组注释,以避免加载特殊字段。但我在那里你必须将你的对象序列化为json / xml等。 我不希望它序列化,我只是希望这些组功能。我搜索了这个网站和互联网,但没有为我的问题找到任何解决方案。
希望有人理解我的意思并得到一个想法:)
答案 0 :(得分:1)
有几种可能性:
这很危险,你应该格外小心,因为从所有角度来看它看起来都是一个完全加载的实体。你必须知道为什么一个字段为空 - 只是因为它是空的,或者因为在水化期间它没有被填充。
将此用于性能敏感的查询,其中需要大量只读数据和复杂连接。但请注意,您没有可以使用Doctrine管理的任何实体(例如更新,删除等)。
基本上与2)中的建议相同,但这次你会得到物品。所以你可以使用你所有的OOP智慧。
非常先进的水平。仅在您需要针对多个实体的特殊水合模式时才有用,并且实际上没有其他选项可以根据您的需要提供性能和质量。
答案 1 :(得分:0)
您可以使用部分对象,但您应该小心。例如:
$q = $em->createQuery("select partial u.{id,name,otherField} from MyApp\Entity\User u");
您可以在此处阅读更多内容:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/partial-objects.html