簡體   English   中英

覆蓋FOSUserBundle Symfony中的注冊表格

[英]Override registration form in FOSUserBundle Symfony

我正在嘗試覆蓋fosuserbundle注冊表單的默認區域。 我通過數據庫添加了我想要的所有必填字段,並使用bootstrap cdn進行了自定義。 但是,當我嘗試自定義注冊表單的默認字段時,在register_content.html.twigregister.html.twig中都找不到它來進行編輯。

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 %}

我想自定義以下所有文本區域。

  • 電子郵件
  • 用戶名
  • 密碼
  • 重復輸入密碼

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

提前致謝。

如果要更改其直接性,可以在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中覆蓋以下forme類型(創建一個新的formType)

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

如果要覆蓋現有的FormType,請遵循該文檔: http : //symfony.com/doc/master/bundles/FOSUserBundle/overriding_forms.html

如果要選擇html中的特定字段,則可以選擇如下字段:

{{ form_widget(form.email) }}

{{ form_widget(form.username) }}

要么

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM