0

教義エンティティをPHPテンプレートに渡すと、デザイナーがセッターの呼び出しを開始してデータを変更できることを発見しました。これは通常、サブリクエストを実行するページがあることを除いて大したことではないため、これらの変更はコントローラーによって認識され、データベースに保存される可能性があります(IDマップパターンはストレージから更新されるのではなく、オブジェクトを返します)。

テンプレートがデータを変更しないようにする方法はありますか?

(エンティティを渡す前にデタッチしようとしましたが、そのため、Doctrineプロキシはデータを返しません。遅延読み込みを失いたくありません)

4

1 に答える 1

1

延期された明示的な変更追跡ポリシーの使用を検討してください。

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

明示的に保持するエンティティのみが更新対象と見なされます。そのため、テンプレートで行われた偶発的な更新は保存されません。

Notify ポリシーを試して、ちょっとした魔法で通知送信者を無効にして、エンティティを基本的に読み取り専用にすることもできると思います。

于 2012-04-20T18:16:35.940 に答える