因此,我有一个带有注解断言的实体,并在该实体上手动调用validate(),所有操作均按预期进行。
但是,有时在此之前的过程会通过关系水合同一实体。然后,稍后当我正常获取实体时,会得到该实体的代理(已初始化),我相信Doctrine出于性能原因会自动执行此操作。
但是,当我随后对其进行验证时,由于该类是代理,因此注释断言不会被接受。
validate()是否应该知道如何通过从代理的基类中加载断言来验证代理?我认为不是,因为事实并非如此。
所以我的问题是,有没有办法将代理实体转换为它的普通实体类(我不是说水合/初始化它,因为它已经存在了)。
还是有一种方法可以强制Doctrine从数据库中重新获取实体而不返回初始化的代理?
啊哈,我必须$em->clear()
在请求相关实体之后打电话给我,以确保下一次获得非代理实体。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句