假设我有一个名为Entity
的基本实体,它被映射到数据库表。该实体有两个属性:propertyA
和propertyB
。
这个实体的一个特点是,尽管我们可以在这些属性中存储我们想要的任何内容,但在使用propertyB
的Twig模板上使用entity.propertyB
的值时,我们希望系统地将值截断为100字符。
现在,这在几个方面是完全可行的:
getPropertyB()
方法中截断值; 由于这严格来说是显示规则,而不是我们实体的业务规则,因此第二种解决方案似乎是最好的恕我直言。但是,它要求我们每次需要在模板中使用propertyB
的值时应用过滤器。如果一个不知情的开发人员过来,那么该值可能不会被截断。
所以我的问题是:有没有办法注册某种类型的回调,严格限制在包含我们实体的视图模型中,这样我们就可以在其某些属性上动态应用一些过滤器?
答案 0 :(得分:0)
由于您永远不需要访问超过100个字符的任何内容,因此可以在其setter中截断该属性。这并没有真正污染实体代码,因为这是它固有的一些逻辑。