我的应用程序中有几个表单使用的表单字段。 我需要强迫它到处都是ucfirst()' d。 完成此任务的最佳方法是什么?
我无法使用doctrine prePersist / preUpdate事件,因为此字段值也会通过在持久性之前调度的事件推送到另一个实体,并且我希望此时已经转换了此推送值。
我认为我可以使用DataTransformer,但在我看来,DataTransformers用于双向操作(转换/反向转换)。在这种情况下,不需要反向变换。所以它可能很糟糕地使用DataTransformer。
是否有其他解决方案全局执行此规范化?
答案 0 :(得分:1)
在您的实体设置器中使用ucfirst()。例如:
...
public function setFirstname($fname){
$first = ucfirst($fname);
$this->first_name = $first;
return $this;
}
那应该有用。但是你必须修改你的所有实体。
但我想知道这样做是否更容易:
$user->setFirstName( ucfirst( $form->get('first_name')->getData() ) );
也许这是第二种选择?