symfony 如何在twig中定义数组

jm2pwxwz  于 2023-06-30  发布在  其他
关注(0)|答案(3)|浏览(134)

我需要在twig中显示一个来自控制器的值的图像。例如,如果来自控制器的值是(Home或home或revenation或Renovation或rent或Rent),则应该出现在房屋的图像中,并且列表继续。
目前我正在做的事情如下

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

这份名单很长,很快就会失控。所以我想简单地在twig中创建一个数组,并检查来自controller的值是否存在于我在twig中的数组中以显示图像。

inb24sb2

inb24sb21#

您可以使用{key: value}[value1, value2]语法定义数组。在这里阅读更多关于数组和twig本身的内容。
您可以执行以下操作:

{% 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 %},如果你总是要检查两种情况,那么只使用小写来定义键。

njthzxwz

njthzxwz2#

在twig中定义数组

{% 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
klh5stk1

klh5stk13#

{% set array = { 0:“gleneagles-experience”,1:“why-choose”,2:“partners”,3:“plan-travel”,4:“hospital-stay”,5:“going-home”,6:“helpful-resources”} %}

相当于php中的下面的数组-

$array = [“Gleneagles-experience”,“why-choose”,“partners”,“plan-travel”,“hospital-stay”,“going-home”,“helpful-resources”];

相关问题