在FOS Userbundle中添加密码输入类

时间:2015-05-06 08:06:39

标签: symfony fosuserbundle

我想覆盖FOS Userbundle的默认注册表单,并为密码输入添加自定义类。所以我已将register.html.twig和register_content.html.twig复制到相应的目录中并编辑了register_content.html:

{% trans_default_domain 'FOSUserBundle' %}

<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register">
    {{ form_errors(form) }}

    {{ form_row(form.email, {'attr': {'class': 'input-block-level'}}) }}
    {{ form_row(form.username, {'attr': {'class': 'input-block-level'}}) }}
    {{ form_row(form.plainPassword, {'attr': {'class': 'input-block-level'}}) }}

    {#{{ form_row(form.submit, { 'label': 'Submit me' }) }}#}
    {{ form_end(form) }}
    <div>
        <input type="submit" value="{{ 'registration.submit'|trans }}" />
    </div>

{'attr': {'class': 'input-block-level'}} - &gt;它适用于除plainPassword之外的每个输入。我猜它是因为它重复或类似的东西。使用plainPassword删除form_row并清除缓存后仍然显示更多内容,因此它似乎来自另一个文件。

1 个答案:

答案 0 :(得分:4)

它不会来自另一个文件,当您调用它时,它会渲染您尚未渲染的所有字段。 要在plainPassword字段中添加一个类,您应该对它的每个元素执行一次,因为普通密码是一个包含两个字段的数组(密码字段和确认密码字段)。 要做到这一点,你需要做这样的事情:

{{ form_widget(form.plainPassword.first, { 'attr': {'class': 'myclass'} }) }}
{{ form_widget(form.plainPassword.second, { 'attr': {'class': 'myclass'} }) }}