在Twig中自定义渲染Symfony 2中的“重复”字段
我刚开始使用Twig,并试图建立一个注册表单。 要添加密码/重新输入密码字段,我使用“重复”文件类型:
->add('password', 'repeated', array(
'type' => 'password',
'invalid_message' => 'Passwords have to be equal.',
'first_name' => 'Password',
'second_name' => 'Re-enter password',
));
它按预期工作。 然而,我有问题,我想添加一些自定义类等等,我的形式。 所以我的模板看起来像这样:
<form action="{{ path('register') }}" method="post" {{ form_enctype(form) }}>
{{ form_errors(form) }}
{{ form_errors(form.username) }}
<div class="form-field">
{{ form_label(form.username, null, { 'attr': {'class': 'form-label'} }) }}
{{ form_widget(form.username, { 'attr': {'class': 'form-input'} }) }}
</div>
{{ form_errors(form.email) }}
<div class="form-field">
{{ form_label(form.email, null, { 'attr': {'class': 'form-label'} }) }}
{{ form_widget(form.email, { 'attr': {'class': 'form-input'} }) }}
</div>
{{ form_errors(form.password) }}
<div class="form-field">
{{ form_label(form.password, null, { 'attr': {'class': 'form-label'} }) }}
{{ form_widget(form.password, { 'attr': {'class': 'form-input'} }) }}
</div>
{{ form_rest(form) }}
<input type="submit" class="contact-submit" />
</form>
这适用于除密码部分以外的所有内容。 我想在这里单独呈现两个字段,现在他们都只是呈现在同一个div中。
我该如何解决? 有没有办法在Twig中选择独立的字段? 或者我只是做错了什么,因为我首先遇到了这个问题。
随机猜测后,我解决了我自己的问题。 我会在这里发布它,以便可能通过搜索来到这个问题的其他人也知道答案:
{% for passwordField in form.password %}
<div class="form-field">
{{ form_label(passwordField, null, { 'attr': {'class': 'form-label'} }) }}
{{ form_widget(passwordField, { 'attr': {'class': 'form-input'} }) }}
</div>
{% endfor %}
如果你想在你的树枝模板中重复使用两个密码字段,你只需要调用它们各自的名字,如:
{{ form_label(form.password.pass, "Password :") }}
{{ form_widget(form.password.pass) }}
{{ form_label(form.password.confirm, "Confirm :") }}
{{ form_widget(form.password.confirm) }}
当然在你的功能中:
/..
->add('password', 'repeated', array(
'first_name' => 'pass',
'second_name' => 'confirm',
'type' => 'password'
))
问候。
这适用于我:
....
{{ form_errors(form.password.first) }}
<div class="form-field">
{{ form_label(form.password.first, null, { 'attr': {'class': 'form-label'} }) }}
{{ form_widget(form.password.first, { 'attr': {'class': 'form-input'} }) }}
</div>
{{ form_errors(form.password.second) }}
<div class="form-field">
{{ form_label(form.password.second, null, { 'attr': {'class': 'form-label'} }) }}
{{ form_widget(form.password.second, { 'attr': {'class': 'form-input'} }) }}
</div>
....
链接地址: http://www.djcxy.com/p/81389.html
上一篇: Custom rendering of a "repeated" field from Symfony 2 in Twig
下一篇: Jenkins email notification is successfully sent but not received