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>