在Symfony中修改绑定表单数据的建议位置是哪个?

在Symfony中修改绑定表单数据的建议位置是哪个?,第1张

概述我有一个表单来创建一个新的客户.客户可能有手机号码.移动号码应该持久化,不能使用或00前缀,用户可以键入.这可以很容易地实现: $customer->setMobile(preg_replace("/^(\+|00)/", '', $customer->getMobile())); 这是代码最好的地方? >在客户控制器之前,调用实体管理器并持续实体.这真的是MVC模式中的控制器的问题吗? >使用S 我有一个表单来创建一个新的客户.客户可能有手机号码.移动号码应该持久化,不能使用或00前缀,用户可以键入.这可以很容易地实现:
$customer->setMobile(preg_replace("/^(\+|00)/",'',$customer->getMobile()));

这是代码最好的地方?

>在客户控制器之前,调用实体管理器并持续实体.这真的是MVC模式中的控制器的问题吗?
>使用SanitizeCustomerSubscriber并监听FormEvents:POST_BIND事件
>使用CustomerSanitizer服务

任何其他想法?当然,我在谈论数据 *** 作一般来说,手机号码只是一个例子:要消毒的字段可能不止一个.

解决方法 您应该在PRE_BIND事件中执行此 *** 作,您可以在处理之前访问提交的数据.
$builder->addEventListener(FormEvents::PRE_BIND,function (FormEvent $event) {    $data = $event->getData();    if (isset($data['mobile'])) {        $data['mobile'] = preg_replace("/^(\+|00)/",$data['mobile']);    }    $event->setData($data);});

为了记录,从Symfony 2.3开始,这个事件叫做PRE_submit.

总结

以上是内存溢出为你收集整理的在Symfony中修改绑定表单数据的建议位置是哪个?全部内容,希望文章能够帮你解决在Symfony中修改绑定表单数据的建议位置是哪个?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1100929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存