自 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)的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Forms NavigationBar 颜色自 iOS 4.6 以来被覆盖