自 Symfony2 更新到 2.8 以来覆盖注册表单(SonataUserBundle)

Posted

技术标签:

【中文标题】自 Symfony2 更新到 2.8 以来覆盖注册表单(SonataUserBundle)【英文标题】:Overriding Registration Form (SonataUserBundle) since Symfony2 Update to 2.8 【发布时间】:2016-03-06 09:46:51 【问题描述】:

将 symfony2 与依赖项更新到 2.8 后,我在尝试覆盖奏鸣曲用户捆绑注册表单时收到以下错误消息:

The field type "Sonata\UserBundle\Form\Type\RegistrationFormType" is not registered with the service container.

如果我切换回 Symfony 2.7,一切都会恢复正常。

我的 services.yml:

sonata.user.registration.form.type:
    class: My\Bundle\Form\Type\RegistrationFormType
    arguments: [ "%fos_user.model.user.class%" , "@service_container"]
    tags:
        -  name: form.type, alias: sonata_user_registration 

在我的控制器中,以下行触发了错误:

$form = $this->container->get( 'sonata.user.registration.form' );

很遗憾,我找不到有关此主题的任何资源(即,自最新版本以来,在覆盖注册表单方面是否有任何更改)

【问题讨论】:

【参考方案1】:

好的,这不是错误,而是一项新功能。您必须使用包中的 build() 和 boot() 方法通过 FormHelper::registerFormTypeMapping 注册您的 FormType。

【讨论】:

你能展示一个代码示例吗?我遇到了同样的问题,不明白你的意思!谢谢 您可以在此处找到代码示例:sonata-project.org/bundles/core/master/doc/reference/… 在包含您要覆盖的表单类型的捆绑包之后(在您的 AppKernel 中)包含您的捆绑包很重要。

以上是关于自 Symfony2 更新到 2.8 以来覆盖注册表单(SonataUserBundle)的主要内容,如果未能解决你的问题,请参考以下文章

将 symfony 2.8 更新到 3.* ,奏鸣曲错误

深蓝词库转换2.8发布——支持微软拼音自学习词库导入导出

Xamarin.Forms NavigationBar 颜色自 iOS 4.6 以来被覆盖

Symfony2 实体用户提供者覆盖自定义身份验证提供者

自上次 chrome 更新以来,我的 HTML 输入字段默认为“只读”

Delphi - 如何正确注册自 XE8 以来的图形类?