我发现当我将doctrine实体传递给PHP模板时,设计人员可以开始调用setter并更改数据。这通常没什么大不了的,除非有页面执行子请求,因此控制器可以看到这些更改,并且有可能保存到数据库中(身份映射模式返回对象而不是从存储中刷新)! / p>
有没有办法阻止模板更改数据?
(我尝试在传递实体之前对它们进行分离,但是这使得教条代理不返回数据。我真的不想丢失延迟加载)
答案 0 :(得分:1)
考虑使用延期显式更改跟踪政策:
只有您明确保留的实体才会被考虑更新。因此,不会保存在模板中完成的附带更新。
我想您也可以尝试通知策略,并且有一点魔力,禁用通知发件人使您的实体基本上只读。