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

Overriding Registration Form (SonataUserBundle) since Symfony2 Update to 2.8

将带有依赖项的 symfony2 更新到 2.8 后,我在尝试覆盖 sonata 用户包注册表时收到以下错误消息:

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' );

不幸的是,我找不到关于这个主题的任何资源(即自最新版本以来是否有任何更改覆盖注册表)

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

注册您的 FormType