覆盖 FOSUserBundle Symfony 中的注册表格

Override registration form in FOSUserBundle Symfony

我正在尝试覆盖 fosuserbundle 注册表单的默认区域。我通过数据库添加了我想要的所有必填字段,并使用 bootstrap cdn 进行了自定义。但是当我尝试自定义注册表单的默认字段时,我无法在 register_content.html.twigregister.html.twig[=33= 中找到它] 编辑它们。

register_content.html.twig

{% trans_default_domain 'FOSUserBundle' %}

{{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register'}}) }}
    {{ form_widget(form) }}
    <div>

        <input class="btn btn-success" type="submit" id="_submit" name="_submit" value="{{ 'registration.submit'|trans }}" />
    </div>
{{ form_end(form) }}

register.html.twig

{% extends "@FOSUser/layout.html.twig" %}

{% block fos_user_content %}
{% include "@FOSUser/Registration/register_content.html.twig" %}
{% endblock fos_user_content %}

我想自定义以下所有文本区域。

  • 电子邮件
  • 用户名
  • 密码
  • 重复密码

在哪里可以找到以上字段?

提前致谢。

如果您想覆盖现有的 FormType,请遵循该文档:http://symfony.com/doc/master/bundles/FOSUserBundle/overriding_forms.html

如果您想选择 html 中的特定字段,您可以 select 这样的字段:

{{ form_widget(form.email) }}

{{ form_widget(form.username) }}

{{ form_widget(form.email, { 'attr': {'class': 'foo'} }) }}

如果你想改变它的目录,你可以在 vendor/friendsofsymfony/user-bundle/Form/Type/RegistrationFormType.php 找到它

 public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('email', 'email', array('label' => 'form.email', 'translation_domain' => 'FOSUserBundle'))
        ->add('username', null, array('label' => 'form.username', 'translation_domain' => 'FOSUserBundle'))
        ->add('plainPassword', 'repeated', array(
            'type' => 'password',
            'options' => array('translation_domain' => 'FOSUserBundle'),
            'first_options' => array('label' => 'form.password'),
            'second_options' => array('label' => 'form.password_confirmation'),
            'invalid_message' => 'fos_user.password.mismatch',
        ))
    ;
}

但最好在 config.yml 中覆盖下面的表单类型(创建一个新的表单类型)

fos_user:
    # ...
    registration:
        form:
            type: AppBundle\Form\RegistrationType