首页 文章

Symfony 3 - Fosuserbundle Registartion表单getBlockPrefix

提问于
浏览
1

我阅读了很多关于如何覆盖FOSUserBundle注册表的帖子 . 我需要更改表单输入名称:例如:

<input type="email" id="fos_user_registration_form_email" name="fos_user_registration_form[email]" required="required">

一定是

<input type="email" id="user_registration_email" name="user_registration[email]" required="required">

我已经扩展了我需要编辑的所有文件,它运行良好 . 例如,在我的UserBundle \ Form \ Type \ UserRegistrationType中,我为名为Firstname的新字段添加了一个文本输入,它运行良好 .

通常,在Symfony 3中,它是通过函数getBlockPrefix()编辑表单输入名称的示例

但是,这并不适用于FOSUserBundle注册表 . 为什么?

我希望能有人帮助我 .

2 回答

  • 1

    必须在路径 fos_user > registration > form > name ,yaml示例中的应用程序配置文件中进行更改:

    fos_user:
        registration:
            form:
                name: your_name (or '' to disable block brefix)
    

    我实际上很好奇为什么用户包不尊重表单前缀getter .

    资料来源:config reference

  • 0

    您可以尝试使用Symfony表单组件覆盖它 .

    这是我正在做的事情的例子,在 Registration/register.html.twig

    <form action="{{ path('fos_user_registration_register') }}" method="post" id="form-register" class="form-horizontal form-bordered">
        <div class="form-group" id="fos_user_registration_form">
            <div class="col-xs-6">
                <div class="input-group">
                    <span class="input-group-addon"><i class="gi gi-envelope"></i></span>
                    {{ form_widget(form.email, { 'attr': {'class': 'form-control input-lg', 'placeholder': 'form.email'|trans } }) }}
                    {{ form_errors(form.email) }}
                </div>
            </div>
            <div class="col-xs-6">
                {{ form_widget(form.username, { 'attr': {'class': 'form-control input-lg', 'placeholder': 'form.username'|trans } }) }}
                {{ form_errors(form.username) }}
            </div>
        </div>
        {{ form_rest(form) }}
    </form>
    

相关问题