验证是否在twig模板中的数组中

时间:2015-05-12 11:42:15

标签: php twig twig-extension

我有一个问题,可以在树枝模板中制作一个in_array吗? 例如,我有一个数组调用aColors,颜色为一个产品:

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

我在Libraries文件夹中有一个类:

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 %}

但不行。存在解决方案?请帮我。谁能帮我? Thx提前!!!

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:-1)

您只是与键进行比较,所以请使用

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