我试图将一个数组从数据库输出到屏幕。在我的实体中:
/**
* @ORM\Column(type="array", nullable=true)
*/
private $category;
在我的树枝模板中:
{% for category in user.profile.category %}
{{ category }}
{% endfor %}
错误: Array to string conversion in ...
我的错误在哪里?
我试图将一个数组从数据库输出到屏幕。在我的实体中:
/**
* @ORM\Column(type="array", nullable=true)
*/
private $category;
在我的树枝模板中:
{% for category in user.profile.category %}
{{ category }}
{% endfor %}
错误: Array to string conversion in ...
我的错误在哪里?
因此,如错误所示,您正在尝试将数组(在category
变量中)转换为字符串。dump()
您可以通过( doc. )预览数组。在你的情况下:
{% for category in user.profile.category %}
{{ dump(category) }}
{% endfor %}
请注意,它dump()
只能用于调试。
您可以使用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 文档。
TWIG 不知道您想如何显示您的表格。
顺便说一句,您应该考虑命名您的变量$categories
而不是$category
,因为您的表包含多个类别。
然后试试这个:
{% for category in user.profile.categories %}
{{ category }}
{% endfor %}
如果我的回答没有帮助,请告诉我们您的数组结构(您的表中是否有任何键或子数组,或者它只是一个列表?)
对于任何想要轻松输出关联数组的人:
(这里,数组是 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>