0

我有一个问题,可以在树枝模板中制作一个 in_array 吗?例如,我有一个名为 aColors 的数组,其中包含一种产品的颜色:

Array[
  0 => "1"
  1 => "2"
]

我在图书馆文件夹中有一个类:

class Colors{
public static $aColors = array(
    '1' => 'White',
    '2' => 'Black',
    '3' => 'Yellow',
    '4' => 'Red',
    '5' => 'Green',
    '6' => 'Blue',
);
}

现在我想验证具有产品颜色的数组的值是否具有具有颜色的通用数组的键,并且我在 .twig 中尝试过:

{% for key,val in aColors %}
      {% if val in Colors::aColors %}
{% endfor %}

但不行。有解决方案吗?请帮我。谁能帮我?提前谢谢!!!

4

2 回答 2

1

Twig 不打算在其中运行任何 PHP 代码。这是 Twig 开发人员的官方立场:Twig 是一个模板引擎,它唯一做的就是模板,它对类、静态类属性和其他 PHP-only 东西一无所知。您拥有的选项是:

  • 将此数组作为上下文变量传递,全局或本地,就像您通常所做的一样(首选方式)。
  • 创建一个扩展或 Twig 函数,它将在内部访问您的类属性(这违反了 Twig 原则,但有效,尽管我将使用我的答案的另一行来警告您不要这样做)。
于 2015-05-12T12:06:14.850 回答
-1

您只是在比较键,因此请使用

    {% for key,val in aColors %}
        {% if val in Colors::aColors|keys %}
    {% endfor %}
于 2015-05-12T11:55:42.777 回答