Twig中的输出数组

时间:2014-10-13 12:33:37

标签: arrays symfony doctrine-orm twig longtext

我试图将数据库从数据库输出到屏幕。 在我的实体中:

/**
 * @ORM\Column(type="array", nullable=true)
 */
private $category;

在我的树枝模板中:

{% for category in user.profile.category %}
    {{ category }}
{% endfor %}

错误:Array to string conversion in ...

我的错误在哪里?

4 个答案:

答案 0 :(得分:15)

因此,错误显示您正在尝试将数组(在category变量中)转换为字符串。您可以按dump()doc.)预览数组。在你的情况下:

{% for category in user.profile.category %}
    {{ dump(category) }}
{% endfor %}

请注意dump()仅用于调试。

答案 1 :(得分:11)

您可以使用join将数组作为连接字符串输出。它在php中的行为类似于implode()

示例:

{{ [1, 2, 3]|join }}
{# returns 123 #}

{{ [1, 2, 3]|join('|') }}
{# outputs 1|2|3 #}

{{ [1, 2, 3]|join(', ', ' and ') }}
{# outputs 1, 2 and 3 #}

请参阅twig join documentation

答案 2 :(得分:6)

TWIG不知道你想如何展示你的桌子。

顺便说一句,您应该考虑命名变量$categories而不是$category,因为您的表包含多个类别。

然后试试这个:

{% for category in user.profile.categories %}
   {{ category }}
{% endfor %}

如果我的回答没有帮助,请告诉我们您的数组的结构(您的表中是否有任何键或子数组,或者它只是一个列表?)

答案 3 :(得分:-1)

对于任何想要轻松输出关联数组的人来说:

(这里,数组是user.profile.category)

        <table>
            <tr>
                {% for key,value in user.profile.category[0] %}
                    <td>{{key|e }}</td>
                {% endfor %}
            </tr>

            {% for cat in user.profile.category %}
                <tr>
                    {% for cell in cat %}
                        <td>{{ cell|e }}</td>
                    {% endfor %}
                </tr>
            {% endfor %}
        </table>