我正在努力选择Twig中的上一个for循环。如果该类别具有子类别,则尝试显示该类别中的一些类别标题。如果类别没有子类别,则应显示上一个循环的标题。通常,如果任何类别的深度相同,这将不是问题。不幸的是,这些类别具有不同的深度。
所以我想做的就是创建某种为我做的功能。
因此,例如:
Category A -> Category A.sub -> Category A.subsub
Title1 Title1.1 Title1.2
Title1 Title1.1 Title1.2
Category B -> Category B.sub -> Category A.subsub
Title1 Title1.1 Title1.1
Title1 Title1.1 Title1.1
如您所见Category B.sub.sub
,没有任何子类别。如果是这种情况,则应显示中的子类别Category B.sub
。通常我会做这样的事情:
{% for category in shop.categories %}
{{ category.title }}
{% if category.subs %}
{% for category in category.subs %}
{{ category.title }}
{% if category.subs %}
{% for category in category.subs %}
{{ category.title }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
有什么方法可以创建某种功能来检查类别是否具有子类别。如果不是这种情况,请访问上一个循环并显示那些类别名称。
我认为这很简单:
{% elseif not category.subs %}
{# Do this #}
但是事实并非如此:(
我的建议是在php代码中使数组的结构相同,并且不要在模板中放入这种逻辑。
因此,在php中,您会有类似以下内容:
if (!isset($categoryB['sub']['subsub']) {
$categoryB['sub']['subsub'] = $categoryA['sub']['subsub'];
}
然后您只需对模板进行迭代:
{% for category in shop.categories %}
{{ category.title }}
{% for category in category.subs %}
{{ category.title }}
{% for category in category.subs.subsub %}
{{ category.title }}
而且我还建议使其递归,这样您将获得以下内容:
{% itarerateCategoryes categories %}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句