0

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

有什么方法可以防止模板更改数据?

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

4

1 回答 1

1

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

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

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

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

于 2012-04-20T18:16:35.940 回答