我一直在试图弄清楚如何if not在 Twig 模板引擎中使用该子句。
根据文件:
您还可以使用not来检查计算结果为false的值:
所以我尝试像这样使用它:
{% if not signed_in %}
You are not signed in.
{% endif %}
Run Code Online (Sandbox Code Playgroud)
并且signed_in来自中间件。看起来像这样:
if (!$this->container->auth->check()) {
/* Render a Sign-up */
return $this->container->view->render($response, 'subscriber/index.twig', ['signed_in' => false]);
}
Run Code Online (Sandbox Code Playgroud)
因此,如果我{{ dump(signed_in) }}未登录,它就会返回false. 但是当我登录时,singed_in返回null.
我当前正在使用的解决方案是{% if signed_in is defined %},但这实际上不是我正在寻找的,或者是吗?
我建议您使用:
{% if signed_in == true %}或{% if signed_in == false%}
这是树枝的行为:
{% set testTrue = true %}
{% set testFalse = false %}
{% set testNull = null %}
{% set testString = "something" %}
{% if testTrue %} {# true #}
{% if testFalse %}{# false#}
{% if testNull %} {# false#}
{% if testString %} {# true #}
{% if not testTrue %}{# false#}
{% if not testFalse %}{# true#}
{% if not testNull %} {# false !!!!!!!!!!!!!!!! #}
{% if not testString %} {# false#}
{% if testTrue == true %} {# true #}
{% if testFalse == true %} {# false#}
{% if testNull == true %} {# false#}
{% if testString == true %} {# true #}
{% if not testTrue == true %} {# false#}
{% if not testFalse == true %} {# true #}
{% if not testNull == true %} {# true #}
{% if not testString == true %} {# false#}
Run Code Online (Sandbox Code Playgroud)
其他值得了解的测试
{% if testTrue == 1 %} {# true #}
{% if testFalse == 1 %} {# false#}
{% if testTrue == "1" %} {# true #}
{% if testFalse == "1" %} {# false#}
Run Code Online (Sandbox Code Playgroud)
Twig != 是一个比较运算符。
The following comparison operators are supported in any expression: ==, !=, <, >, >=, and <=
Run Code Online (Sandbox Code Playgroud)
你可以使用 != 来比较 php 允许你比较的任何两个东西,你得到的结果是一个布尔值。
Twig not 是一个逻辑运算符。(和和或也是如此)
not: Negates a statement.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39120 次 |
| 最近记录: |