【问题标题】:Array in array Twig数组 Twig 中的数组
【发布时间】:2013-09-12 10:01:18
【问题描述】:

关于数组访问中的数组的一个小 Twig 问题。我有以下脚本,它本质上是列出类别,然后是与每个类别关联的子类别。

{% for category in categories %}

    <li>
        <a href="#">{{ category.name }}</a>

        {% if category.subcategories|length > 0 %}

        {% set subcategories  = category.subcategories %}

        <ul>
            {% for subcategory in subcategories %}

            <li>
                <a href="#">{{ subcategory.name }}</a>
            </li>

            {% endfor %}
        </ul>
        {% endif %}
    </li>

{% endfor %}

上面的脚本没有显示子类别,我不知道为什么。主要问题是永远不会访问 for 循环这一事实。在设置子类别变量后立即转储它会显示预期的,即它包含正确的数组,只有一个元素。

有什么想法吗?

转储子类别变量显示:

array (size=2)
  0 => 
    array (size=2)
      'id' => int 1
      'name' => string 'Dolls' (length=5)
  1 => 
    array (size=2)
      'id' => int 2
      'name' => string 'Test' (length=4)

【问题讨论】:

  • 这段代码不错。如果您的类别有一个或多个子类别,则此代码应打印它们。修改你真的有子类别。
  • 嘿,提供了子类别变量的 dump()。还是不走运。
  • 为什么不直接使用{% for subcategory in category.subcategories %}
  • 最初尝试过,但认为我在某种程度上可能对 Twig 提出了太多要求。无论如何,找到答案了,感谢您的优化。

标签: php arrays symfony twig


【解决方案1】:

在这种情况下,问题实际上与 Twig 无关,而是应用于将所有内容组合在一起的 li 项目的类,该类仅在应用特定类时才显示内容给它。

以一种非常奇怪的方式,当没有应用类时,节点只是被 JS 删除,所以 firebug 不会拾取它。最终在页面源代码上偶然发现了它,这就是我找到解决方案的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    相关资源
    最近更新 更多