在 SF2 中以 collection 形式为主题

Theming on a collection form in SF2

是否可以在 Symfony 2 Form 中自定义 特定 collection 的小部件?

我在默认主题中看到了这个块:

{% block collection_widget -%}
    {% if prototype is defined %}
        {%- set attr = attr|merge({'data-prototype': form_row(prototype) }) -%}
    {% endif %}
    {{- block('form_widget') -}}
{%- endblock collection_widget %}

但我 不想 所有 collection 覆盖此小部件,只为一个特定的 collection.

这是我的 collection 的声明:

$builder->add(
    $builder->create('photos', 'collection', [
        'type' => 'photo',
        'allow_add' => true,
    ])->setData($photosValues)
);

有没有办法做这样的事情?

{% block collection_photo_widget -%}
    Here my HTML for my photo collection
{%- endblock collection_widget %}

此致

$builder->add(
    $builder->create('photos', 'collection', [
        'type' => 'photo',
        'allow_add' => true,
        'attr' => array('class'=>'myCSSClassName'),            
    ])->setData($photosValues)
);

无需接触核心系统

要找到正确的块名称,请转至 profiler > forms > {your form} > {your collection field} > view variables

你会在那里看到一把钥匙:"unique_block_prefix"

这是要编辑整个 collection 小部件的块的名称,您应该将 _widget 添加到块名称以更深入