我有三个不同的实体属性,必须在它们保存在数据库之前进行“预解析”。 在向用户显示之前,必须对“相同属性”进行“后解析”。
有几种不同的控制器操作正在设置/获取这些属性。目前,我在每种方法中都基本上预先分析/预分配了这些属性。
我应该如何处理?我正在考虑将它直接放入实体,但这不是那个地方。特别是因为我需要在几个实体中使用相同的预解析函数。
基本上这些函数必须在每个setter和getter调用之前运行。
答案 0 :(得分:0)
您可能需要查看数据转换器 - http://symfony.com/doc/current/cookbook/form/data_transformers.html
<强>更新强>
另一种,也许是最合适的方法是使用Doctrine EventListener
或EventSubscriber
。
http://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
在您的情况下,您需要收听/订阅prePersist
,preUpdate
和postLoad
个事件。
答案 1 :(得分:0)
如果您有一个生成模型代码的t4模板,那么更改属性设置器/获取器以进行数据预处理和后处理相对容易。