我是Symfony2和Twig的新手。我想在一个字段中显示多个值。在我的表单中,我有一个字段'multiple enabled'。
->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)中,会弹出一个错误" Notice:数组到字符串的转换"。
{% for entity in entities %}
<td>{{ entity.name }}</td>
{% endfor %}
但是如果我改成
{% for entity in entities %}
<td>{{ entity.name[0] }}</td>
{% endfor %}
只显示一个值。我想显示该字段的所有值。
在我的index.html。小枝,所有id都存储了多个值。因为我选择了多个值。但是每个id只显示一个值。
对如何实现这一点有什么想法吗?
将数组显示为字符串(如PHP函数implode
所做的):
{% for entity in entities %}
<td>{{ entity.name|join(', ') }}</td>
{% endfor %}
文档如下:http://twig.sensiolabs.org/doc/filters/join.html
在您得到的错误消息中可以看到,启用了multiple
选项的选择字段将返回一个数组。因此,要在Twig中显示它,您需要像对待任何其他数组一样对待它。下面的代码应该可以工作:
{% for entity in entities %}
{% for name in entity.name %}
<td>{{ name }}</td>
{% endfor %}
{% endfor %}
这是在树枝文件上打印多值字段的另一种方法。
{% for genre in node.field_genre %}{{ genre.entity.name.value|join(' ') }}{% endfor %}