如何在树枝中定义数组

时间:2015-10-27 06:15:02

标签: php symfony twig

我需要根据来自控制器的值在twig中显示图像。例如,如果来自控制器的价值是(家庭或家庭或装修或装修或租赁或租赁)并且列表继续存在,则应显示房屋的图像。

目前正在做的事情如下:

{% if goal == "house" or  goals == "House" or goal == "home" or  goals == "Home" %}
<img src="{{ asset('bundles/bundlename/images/house.jpg') }}">
{% endif %}

这个清单很长,而且很快就会失控。所以我想在树枝上创建一个数组并检查来自控制器的值是否存在于我在twig中的数组中以显示图像。

2 个答案:

答案 0 :(得分:5)

您可以使用{key: value}[value1, value2]语法定义数组。阅读有关数组和树枝本身的更多信息here

您可以执行以下操作:

{% set images = {
    "house.jpg": ["house", "House", "home", "Home"]

    ... some more rules ...

} %}

{% for image, keys in images %}
    {% if goal in keys %}
        <img src="{{ asset('bundles/bundlename/images/' ~ image) }}">
    {% endif %}
{% endfor %}

此外,您可以将代码简化为{% if goal|lower in keys %},并且如果您始终需要检查这两种情况,则只能以小写字母定义密钥。

答案 1 :(得分:0)

在树枝中定义数组

{% set section = { foo:{ heading:"bar" } } %}

{{ section.foo.heading }}

bar //output



{% set section = { foo:"bar" } } %}

{{ section.foo }}

bar //output


{% set section = { foo:"bar", one:"two" } } %}

{{ section.one }}

two //output