我是Symfony2和Twig的新手。我想在一个字段中显示多个值。在我的表单中,我有一个“多次启用”的字段。
->add('name','choice', array(
'expanded' => true,
'multiple' => true,
'label' => 'Job Done',
'choices' => array('Wax' => 'Wax', 'Carwash' => 'Carwash','Interior Detailing' => 'Interior Detailing', 'Exterior Detailing' =>'Exterior Detailing',
'Full Detailing' => 'Full Detailing', 'Engine Wash' => 'Engine Wash', 'Engine Detailing' => 'Engine Detailing',
)))
通过此设置,我可以将其成功保存在MYSQL数据库中。但是在Twig(index.html.twig)中,会弹出一个错误“注意:数组转换为字符串”。
{% for entity in entities %}
<td>{{ entity.name }}</td>
{% endfor %}
但如果我改为
{% for entity in entities %}
<td>{{ entity.name[0] }}</td>
{% endfor %}
只显示一个值。我想显示该字段的所有值。
在我的index.html.twig中,所有id都有多个值存储在其中。因为我选择了多个值。但它只显示每个id的一个值。
关于如何实现这一目标的任何想法?
答案 0 :(得分:1)
正如您在错误消息中看到的那样,启用了multiple
选项的选项字段将返回一个数组。因此,要在Twig中显示它,您需要像对待任何其他数组一样对待它。以下代码应该有效:
{% for entity in entities %}
{% for name in entity.name %}
<td>{{ name }}</td>
{% endfor %}
{% endfor %}
答案 1 :(得分:1)
一个很好的Twig过滤器,用于将数组显示为字符串(如PHP函数implode
所示):
{% for entity in entities %}
<td>{{ entity.name|join(', ') }}</td>
{% endfor %}
答案 2 :(得分:0)
这是在树枝文件上打印多个值字段的另一种方法。
{% for genre in node.field_genre %}{{ genre.entity.name.value|join(' ') }}{% endfor %}