繁体   English   中英

Symfony2表单主题使用循环覆盖集合条目行?

[英]Symfony2 form theme override collection entry row with loop?

我的表单收集条目有问题。

例如我的表单类型。

// ProfileFormType
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name')
        ->add('emails', 'collection', array(
            'type' => new EmailType(),
            'allow_add' => true,
            'allow_delete' => true
        ))
    ;
}

多数民众赞成在上述集合的电子邮件类型。

// EmailType
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('email', 'email')
        ->add('publicAccess')
    ;
}

现在,该集合条目行的表单主题。

{%- block _fos_user_profile_form_emails_entry_row %}
    <div class="email form-group{% if form.email.vars.errors | length %} has-error{% endif %}">
        <div class="input-group col-xs-3">
            <span class="input-group-addon">{{ form_widget(form.publicAccess) }}</span>
            {{ form_widget(form.email) }}
            {#% if loop is defined %}{{ dump(loop) }}{% endif %#}
            <span class="input-group-btn"><a class="btn btn-success"><span class="glyphicon glyphicon-plus glyphicon-xs"></span></a></span>
        </div>
        {{ form_errors(form.email) }}
    </div>
{% endblock -%}

但是问题是我没有条目的循环或其他东西...

如何检查条目是否是收藏集的最后一个条目?

原因是我要为所有条目(不是最后一个条目)添加“减号”按钮,而不是“ glypicon-加号”。

您可以使用以下命令访问最后一个条目:

{% if loop.last %}
    {# your custom code for the last entry #}
{% else %}
    {# the others entries #}
{% endif %}

因此,您可以使用它来选择好按钮:

{%- block _fos_user_profile_form_emails_entry_row %}
    <div class="email form-group{% if form.email.vars.errors | length %} has-error{% endif %}">
        <div class="input-group col-xs-3">
            <span class="input-group-addon">{{ form_widget(form.publicAccess) }}</span>
            {{ form_widget(form.email) }}
            <span class="input-group-btn"><a class="btn btn-success"><span class="glyphicon {{ (loop.last) ? 'glypicon-plus' : 'glyphicon-minus' }} glyphicon-xs"></span></a></span>
        </div>
        {{ form_errors(form.email) }}
    </div>
{% endblock -%}

我认为您应该将条目与父项的最后一个元素进行比较。

像这样:

{% if form == form.parent | last %}
    it's the last
{% else %}
    it's not the last
{% endif %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM