【发布时间】:2016-01-12 17:14:41
【问题描述】:
使用此链接
Remove / Replace the username field with email using FOSUserBundle in Symfony2 / Symfony3
我尝试通过覆盖 FOS 用户包从注册表单中删除用户名。
Form Type 类工作正常。
但是在渲染时,它会抛出
第 3 行的 FOSUserBundle:Registration:register_content.html.twig 中不存在对象“Symfony\Component\Form\FormView”的方法“用户名”
我尝试使用此链接来避免这种情况
我做不到。 需要这方面的专家帮助。
更新 1:
我也试过这个链接
http://symfony.com/doc/current/bundles/FOSUserBundle/overriding_forms.html
表单类型类:
/* * 覆盖 FOSUserBundle RegistrationFormType。 */
命名空间 Test\RegistrationBundle\Form;
使用 Symfony\Component\Form\AbstractType;
使用 Symfony\Component\Form\FormBuilderInterface;
类 RegistrationFormType 扩展 AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->remove('username',array("mapped"=>false));
}
public function getParent()
{
return 'fos_user_registration';
}
public function getName()
{
return 'app_user_registration';
}
}
树枝文件:
<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register">
{{ form_widget(form) }}
<div>
<input type="submit" value="{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}" />
</div>
【问题讨论】:
-
@Matteo,请协助我。这将非常有帮助
-
能否请您添加您的模板代码和表单类型代码
-
嗨@NandaKumar,如果您提供使用的树枝文件和FormType文件的代码,这确实是最好的解决方案。那么就可以帮到你了。
标签: symfony