Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php symfony2中的自定义集合模板_Php_Symfony_Twig - Fatal编程技术网

Php symfony2中的自定义集合模板

Php symfony2中的自定义集合模板,php,symfony,twig,Php,Symfony,Twig,是否可以为集合表单字段中的项目添加自定义全局模板 我不想自定义集合模板本身,而是要自定义集合中每个对象的呈现,例如,为集合中包含的每个对象添加特定类或标记 我有一个添加了集合字段的表单,如下所示: $builder ->add('items', 'collection', array( 'type' => new ItemType(), 'allow_add' => true, 'allow_delete' => t

是否可以为集合表单字段中的项目添加自定义全局模板

我不想自定义集合模板本身,而是要自定义集合中每个对象的呈现,例如,为集合中包含的每个对象添加特定类或标记

我有一个添加了集合字段的表单,如下所示:

$builder
    ->add('items', 'collection', array(
        'type' => new ItemType(),
        'allow_add' => true,
        'allow_delete' => true,
        'prototype' => true
    ));
我想定义一个细枝模板,为集合中的每个项目添加一个“删除”按钮(除其他外)

我发现有一个“collection\u widget”模板用于定制集合,购买此模板仅用于集合本身,而不是单个项目

注1:我需要使用全局模板,以便对所有表单中的所有集合执行此操作,我知道我可以为每个表单模板解决此问题,但这不是重点


注2:到目前为止,我用jquery解决了这个问题,向collection_小部件添加了一个类,并用jquery为它的所有子部件添加了按钮。目前这很好,但我正在寻找一个100%模板解决方案,而不必做所有jquery处理。理想情况下,这也应该与用于添加新项目的行原型一起工作。

最后,我找到了一个很好的解决方案。 首先,我必须创建一个collection\u小部件自定义模板(从通用form\u小部件复制),在内部,我调用collection\u rows块,而不是调用form\u rows块,这是form\u rows块的自定义。 在collection_rows块中,您可以自定义任何需要的内容,我刚刚为每个子级添加了一个自定义类

以下是两个模板:

{% block collection_widget %}
{% spaceless %}
    <div {{ block('widget_container_attributes') }}>
        {{ block('collection_rows') }}
        {{ form_rest(form) }}
    </div>
{% endspaceless %}
{% endblock collection_widget %}

{% block collection_rows %}
{% spaceless %}
    {{ form_errors(form) }}
    {% for child in form %}
        {{ form_row(child, {'attr':{'class':'collection-item'}}) }}
    {% endfor %}
{% endspaceless %}
{% endblock collection_rows %}
{%block collection\u widget%}
{%spaceless%}
{{block('collection_rows')}
{{form_rest(form)}
{%endspaceless%}
{%endblock集合\小部件%}
{%block collection_rows%}
{%spaceless%}
{{form_errors(form)}}
{表格%中的子项为%1}
{{form_行(子,{'attr':{'class':'collection-item'}}}}
{%endfor%}
{%endspaceless%}
{%endblock集合_行%}