Symfony模板破坏数据

时间:2012-04-20 15:31:09

标签: php mysql symfony doctrine

我发现当我将doctrine实体传递给PHP模板时,设计人员可以开始调用setter并更改数据。这通常没什么大不了的,除非有页面执行子请求,因此控制器可以看到这些更改,并且有可能保存到数据库中(身份映射模式返回对象而不是从存储中刷新)! / p>

有没有办法阻止模板更改数据?

(我尝试在传递实体之前对它们进行分离,但是这使得教条代理不返回数据。我真的不想丢失延迟加载)

1 个答案:

答案 0 :(得分:1)

考虑使用延期显式更改跟踪政策:

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/change-tracking-policies.html

只有您明确保留的实体才会被考虑更新。因此,不会保存在模板中完成的附带更新。

我想您也可以尝试通知策略,并且有一点魔力,禁用通知发件人使您的实体基本上只读。