Symfony FOS用户包-删除表单和视图中的用户名



使用此链接

在Symfony2/Symfony3中使用FOSUserBundle删除/替换username字段为email

我试图通过重写FOS用户包从注册表单中删除用户名。

表单类型类工作正常。

但是在渲染的时候,它抛出

方法"username"对象"SymfonyComponentFormFormView"在FOSUserBundle:Registration:register_content.html中不存在。第3行

我试着用这个链接来避免这个

方法"email"for object "SymfonyComponentFormFormView"默认:add.html.twig.

我不能。需要专家协助。

更新1:

我也试过这个链接

http://symfony.com/doc/current/bundles/FOSUserBundle/overriding_forms.html

表单类型类:

/**覆盖FOSUserBundle RegistrationFormType。*/

名称空间测试 RegistrationBundle 形式;

使用Symfony 组件 AbstractType形式;

使用Symfony 组件 FormBuilderInterface形式;

class RegistrationFormType extends 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>

感谢@jahller和@D3myon的评论。它帮助我诊断出了问题。

我通过将它们作为单独的元素而不是form_widget(form)来覆盖模板表单。

我删除了模板文件中的用户名。

解决问题。

最新更新