【问题标题】:Twig string comparison always evaluates to trueTwig 字符串比较总是计算为真
【发布时间】:2013-10-05 17:29:51
【问题描述】:

我很难比较 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

【问题讨论】:

    标签: string symfony symfony1 twig


    【解决方案1】:

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

    简单写:

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

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

    【讨论】:

      【解决方案2】:

      {% %}里面不需要把变量{{ }}括起来

      使用

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-20
        • 1970-01-01
        • 2019-08-23
        • 2021-11-28
        相关资源
        最近更新 更多