Lio*_*ate 2 symfony-forms symfony twig fosuserbundle symfony-3.3
我正在使用Symfony 3.3.9,当我尝试渲染表单时,我有以下错误:
在呈现模板期间抛出了异常("无法呈现表单,因为块名称数组包含重复项:"_ fos_user_registration_form_errors","user_errors","user_errors","fos_user_registration_errors","form_errors".").
预先感谢您的帮助 !
编辑17/09/2017 你去:
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(),
));
}
Run Code Online (Sandbox Code Playgroud)
我的树枝:
{{ 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) }}
Run Code Online (Sandbox Code Playgroud)
小智 9
对于任何有这种例外的人:
您可能不应该扩展表单类型,而是创建自己的表单类型并使用getParent来继承行为.如果您的类名与其他类型(名称空间除外)相同,则必须覆盖AbstractType中的getBlockPrefix.
AbstractType的getBlockPrefix方法使用fqcn的最后一部分(类名),您可以使用重复的块名称.
我找到了我的问题的答案。
那来自我的 RegistrationType 类,我试图用另一个类型类进行扩展。getParent 没有按预期工作...
注册类型 >用户类型> FOS\UserBundle\Form\Type\RegistrationFormType
我将所有字段从 UserType 移到 RegistrationType 中,并且它正在工作:)
归档时间: |
|
查看次数: |
1080 次 |
最近记录: |