我正在使用Symfony 3.3.9,当我尝试渲染表单时出现以下错误:
在渲染模板期间抛出了异常 (“无法呈现表单,因为块名称数组包含 重复:“_ fos_user_registration_form_errors”,“user_errors”, “user_errors”,“fos_user_registration_errors”,“form_errors”。“)。
提前感谢您的帮助!
编辑2017年9月17日 你走了:
public function indexAction()
{
/** @var $formFactory FactoryInterface */
$formFactory = $this->get('fos_user.registration.form.factory');
$form = $formFactory->createForm();
return $this->render('AppTMMainBundle:Default:index.html.twig', array(
'form' => $form->createView(),
));
}
My Twig:
{{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register')}) }}
<div class="card-content">
<h3 class="text-center title" style="color: #3C4858;margin:10px 0;">Inscription</h3>
<div class="social text-center">
<a class="btn btn-just-icon btn-round btn-facebook" href="{{ path('hwi_oauth_service_redirect',{'service': 'facebook'}) }}">
<i class="fa fa-facebook"> </i>
</a>
<a class="btn btn-just-icon btn-round btn-twitter" href="{{ path('hwi_oauth_service_redirect',{'service': 'twitter'}) }}">
<i class="fa fa-twitter"></i>
</a>
<a class="btn btn-just-icon btn-round btn-google" href="{{ path('hwi_oauth_service_redirect',{'service': 'google'}) }}">
<i class="fa fa-google-plus"></i>
</a>
</div>
<p class="description text-center">Ou de façon plus classique</p>
<div class="row">
<div class="col-xs-6">
{{ form_label(form.firstname) }}
{{ form_widget(form.firstname) }}
</div>
<div class="col-xs-6">
{{ form_label(form.lastname) }}
{{ form_widget(form.lastname) }}
</div>
</div>
<div class="row">
<div class="col-xs-12">
{{ form_label(form.email) }}
{{ form_widget(form.email) }}
</div>
</div>
<div class="row">
<div class="col-xs-6">
{{ form_widget(form.plainPassword.first, {'attr': {'class': 'form-control', 'placeholder': 'form.password'}}) }}
</div>
<div class="col-xs-6">
{{ form_widget(form.plainPassword.second, {'attr': {'class': 'form-control', 'placeholder': 'form.password_confirmation'}}) }}
</div>
</div>
<!-- If you want to add a checkbox to this form, uncomment this code -->
<div class="input-group">
<div class="checkbox">
<label>
<input type="checkbox" name="optionsCheckboxes" checked="">
{{ 'index.proceed.agree'|trans }} <a href="{{ path('tm_main_policies_terms') }}">{{ 'index.proceed.cgu'|trans }}</a>.
</label>
</div>
</div>
<div class="footer text-center">
<input type="submit" class="btn btn-primary btn-round" value="{{ 'index.action.subscribe'|trans }}">
</div>
</div>
{{ form_end(form) }}
答案 0 :(得分:8)
对于任何有这种例外的人:
您可能不应该扩展表单类型,而是创建自己的表单类型并使用getParent继承行为。 如果您的类名与其他类型相同(不包括名称空间) 您必须覆盖AbstractType的getBlockPrefix。
AbstractType的getBlockPrefix方法使用fqcn的最后一部分(类名),你可以有一个重复的块名。
答案 1 :(得分:0)
我找到了问题的答案。
那是我的RegistrationType类,我试图用另一个Type类扩展。 getParent无法正常工作...
RegistrationType&gt; UserType &gt; FOS \ UserBundle \ Form \ Type \ RegistrationFormType
我从RegistrationType中的UserType移动所有字段并且它正在工作:)