Twig字符串比较总是计算为true

时间:2013-10-05 17:29:52

标签: string symfony symfony1 twig

我很难比较Twig模板中的字符串。以下示例始终计算结果为true,即使res.website明确包含字符串none,该字符串应使if语句的计算结果为false。

为什么会发生这种情况的任何想法,以及只有当字符串等于none时,如何才能将其评估为真?

非常感谢提前!

   {{res.website}}//output: none

Twig(评估为真!)

{% if "{{res.website}}" != "none" %}
    <img src="{{ asset('bundles/foo/images/web-icon.png') }}" />
{% endif %}

注意:当我从if "{{ ... }}"周围删除引号时,出现以下错误:

A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses

2 个答案:

答案 0 :(得分:1)

用双引号括起你的变量肯定不会给出预期的结果。它只会将{{res.website}}视为字符串,并将其与none进行比较。

简单地写一下:

{% if res.website != "none" %}
    <img src="{{ asset('bundles/foo/images/web-icon.png') }}" />
{% endif %}

如果仍有错误,请确保res是当前范围内的有效变量。

答案 1 :(得分:0)

{% %}内,无需包含变量{{ }}

使用

{% if res.website != "none" %}
    <img src="{{ asset('bundles/foo/images/web-icon.png') }}" />
{% endif %}