在将依赖项更新为2.8的symfony2后,我在尝试覆盖sonata用户捆绑包注册表时收到以下错误消息:
The field type "SonataUserBundleFormTypeRegistrationFormType" is not registered with the service container.
如果我切换回Symfony 2.7,一切都会恢复正常。
我的服务yml:
sonata.user.registration.form.type:
class: MyBundleFormTypeRegistrationFormType
arguments: [ "%fos_user.model.user.class%" , "@service_container"]
tags:
- { name: form.type, alias: sonata_user_registration }
在我的控制器中,以下行触发错误:
$form = $this->container->get( 'sonata.user.registration.form' );
不幸的是,我找不到任何关于这个主题的资源(即,自最新版本以来,覆盖注册表表是否有任何更改)
好吧,这不是一个bug,而是一个新特性。您必须使用捆绑包中的build()和boot()方法通过FormHelper::registerFormTypeMapping注册FormType。