Symfony模板损坏数据


Symfony templates corrupting data

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

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

(我在传递实体之前尝试过分离实体,但这使得教义代理不返回数据。我真的不想失去懒惰的加载)

请考虑使用延迟显式更改跟踪策略:

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

只有显式保留的实体才会被考虑更新。 因此,不会保存模板中完成的偶然更新。

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