我有一些类别和项目给他们。我希望能够仅删除尚未设置项目的类别。例如,我有书籍类别,但没有添加具体书籍,因此我可以将其删除。我有食品类别,其中有比萨饼、三明治、苹果——所以我不能删除它。我在想如何最好地做到这一点。
<table class="table table table-striped spacer">
{% for c in cat %}
<tr>
<td>
{# If in edit mode, display edit form #}
{% if id == c.id %}
<form class="form-inline" action="{{ path('edit_category', {'id': c.id}) }}" method="post" {{ form_enctype(form) }}>
{% form_theme form 'EMBudgetTrackerBundle:Forms:inputs.html.twig' %}
{% for field in form %}
{{ form_row(field) }}
{% endfor %}
<button type="submit" class="btn"><i class="icon-ok"></i></button>
</form>
{# Else display the name #}
{% else %}
{{ c.name }}
<a href="{{ path('edit_category', {'id': c.id}) }}"><i class="icon-pencil"> </i></a>
<a href="{{ path('delete_category', {'id': c.id}) }}"> <i class="icon-remove"></i></a>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
这就是我为每个类别所做的。我想要的是如果有添加的项目,不提供删除链接。我唯一能想到的就是有两个数组——一个是带有项目的类别,另一个是没有项目的类别,并且对于这两个数组都使用了这个 for 循环。但这会导致代码重复——一切都是一样的,只是一个循环没有<a href="{{ path('delete_category', {'id': c.id}) }}"> <i class="icon-remove"></i></a>
这一行,而且看起来不太优雅。我在想类似的东西
if(c.name not member of array_with_categories_without_items)
then display the delete link
但我不知道是否有办法做到这一点。有人可以给我一些想法吗?非常感谢您!:)