我试图将数据库从数据库输出到屏幕。 在我的实体中:
/**
* @ORM\Column(type="array", nullable=true)
*/
private $category;
在我的树枝模板中:
{% for category in user.profile.category %}
{{ category }}
{% endfor %}
错误:Array to string conversion in ...
我的错误在哪里?
答案 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 #}
答案 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>