在 FOS Userbundle 中添加 class 用于密码输入
Add class for password input in FOS Userbundle
我想覆盖 FOS Userbundle 的默认注册表并添加自定义 class 到密码输入。所以我将 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'}}
-> 它适用于除 plainPassword 之外的每个输入。我猜是因为它重复了或类似的东西。在使用 plainPassword 删除 form_row 并清除缓存后,它仍然显示更多内容,所以它似乎来自另一个文件。
它不是来自另一个文件,当您调用 formend 时,它将呈现您尚未呈现的所有字段。
要将 class 添加到您的 plainPassword 字段,您应该对它的每个元素执行此操作,因为普通密码是一个包含两个字段(密码字段和确认密码字段)的数组。
为此,您需要执行以下操作:
{{ form_widget(form.plainPassword.first, { 'attr': {'class': 'myclass'} }) }}
{{ form_widget(form.plainPassword.second, { 'attr': {'class': 'myclass'} }) }}
我想覆盖 FOS Userbundle 的默认注册表并添加自定义 class 到密码输入。所以我将 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'}}
-> 它适用于除 plainPassword 之外的每个输入。我猜是因为它重复了或类似的东西。在使用 plainPassword 删除 form_row 并清除缓存后,它仍然显示更多内容,所以它似乎来自另一个文件。
它不是来自另一个文件,当您调用 formend 时,它将呈现您尚未呈现的所有字段。 要将 class 添加到您的 plainPassword 字段,您应该对它的每个元素执行此操作,因为普通密码是一个包含两个字段(密码字段和确认密码字段)的数组。 为此,您需要执行以下操作:
{{ form_widget(form.plainPassword.first, { 'attr': {'class': 'myclass'} }) }}
{{ form_widget(form.plainPassword.second, { 'attr': {'class': 'myclass'} }) }}