Javascript Symfony Twig-删除嵌套集合而不显示表单

Javascript Symfony Twig-删除嵌套集合而不显示表单,javascript,html,symfony,twig,Javascript,Html,Symfony,Twig,因此,我有一个嵌套的CollectionType文件实体: public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('file', FileType::class, array('label' => 'File', 'required' => false)); } 现在,如果我像这样显示嵌套实体: <h3>Fil

因此,我有一个嵌套的
CollectionType
文件实体:

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('file', FileType::class, array('label' => 'File', 'required' => false));
    }
现在,如果我像这样显示嵌套实体:

<h3>Files</h3>
    <ul style="list-style-type:none;padding-left:0;" class="col-files">
        {% for file in form.files %}
            {{ form_row(file) }}
        {% endfor %}
    </ul>
文件
    {form.files%}中的文件为% {{form_row(file)}} {%endfor%}
对于原型:

{% block _omics_experiment_files_entry_row %}
    <li class="panel panel-body panel-default">
        {{ form_row(form.file) }}
    </li>
{% endblock %}
{%block\u omics\u experiment\u files\u entry\u row%}
  • {{form_行(form.file)}
  • {%endblock%}
    它像这样生成HTML(在JS注入之后):

  • 文件
    去除
  • 当按下删除按钮时,
  • 消失,保存时,文件从父实体中正确删除

    但是,我不想显示表单行,我只想显示文件名:

    <h3>Files</h3>
        <ul style="list-style-type:none;padding-left:0;" class="col-files">
            {% for file in form.files %}
                <li class="panel panel-body panel-default">
                    <p><a href="{{ asset('uploads/omics_experiments/' ~ file.vars.value.path) }}">{{ file.vars.value.name }}</a></p>
                </li>
            {% endfor %}
        </ul>
    
    文件
    
      {form.files%}中的文件为%
    • {%endfor%}
    它生成HTML,如:

    <li class="panel panel-body panel-default">
            <p><a href="/uploads/omics_experiments/f504b28f1818493d0cbb712e9b3993b009bef857-001 ÔùÅÔùÅ.lrtemplate">001ÔùÅÔùÅ.lrtemplate</a></p>
            <br><br>
            <button type="button" class="btn btn-danger btn-sm"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span> Remove </button>
            <br>
     </li>
    


  • 去除
  • 它将自身从DOM中移除,但实际上并不删除实体

    在这两种情况下,
    按钮
    元素只会删除父级
  • 有人知道我需要做什么才能拥有第一个示例的行为和第二个示例的UI吗

    我已经尝试将
    {{form_row(file)}}
    包含在
    隐藏的
    /
    可见性中:none
    div
    ,这导致DOM行为异常,因此我认为这不起作用

    编辑:


    我还尝试添加一个
    input:hidden
    字段,该字段具有与表单输入相同的
    id
    name
    ,但这不起作用。

    因此,我找到了一个略显粗糙的解决方案,如果有人有更干净的,我想知道:

    <h3>Files</h3>
        <ul style="list-style-type:none;padding-left:0;" class="col-files">
            {% for file in form.files %}
            <li class="panel panel-body panel-default">
                <p><a href="{{ asset('uploads/omics_experiments/' ~ file.vars.value.path) }}">{{ file.vars.value.name }}</a></p>
                {{ form_widget(file.file , { 'attr': {'style': 'display: none;'} }) }}
            </li>
            {% endfor %}
        </ul>
    
    文件
    
      {form.files%}中的文件为%
    • {{form_小部件(file.file,{'attr':{'style':'display:none;'}}}}}
    • {%endfor%}
    虽然
    display:none
    不适用于整个
    form\u行
    ,但它适用于单个
    form\u小部件
    ,这足以让Symfony删除文件

    <h3>Files</h3>
        <ul style="list-style-type:none;padding-left:0;" class="col-files">
            {% for file in form.files %}
            <li class="panel panel-body panel-default">
                <p><a href="{{ asset('uploads/omics_experiments/' ~ file.vars.value.path) }}">{{ file.vars.value.name }}</a></p>
                {{ form_widget(file.file , { 'attr': {'style': 'display: none;'} }) }}
            </li>
            {% endfor %}
        </ul>