options.disabled == true 给出致命错误

options.disabled == true gives fatal error

我有一个 twig 宏,我正在尝试检查参数是真还是假。像这样

{% macro button(color,content, options = {} %}
    {%  if options.disabled == true %} disabled {% endif %}
{% endmacro button %}

但是我在那条中间线上遇到了致命错误。当我尝试这些时:

{% if options.disabled is same as(true) %} disabled {% endif %}

{% if options.disabled is defined %} disabled{% endif -%}

-- 它按预期工作。尽管 == true 在 Twig 网站上有类似的记录。我真的很想知道为什么这不起作用。

错误:Fatal error: Uncaught Twig\Error\RuntimeError: Key "disabled" for array with keys "id, classes" does not exist. in .../button/button-macro.html.twig on line 19 ( ! ) Twig\Error\RuntimeError: Key "disabled" for array with keys "id, classes" does not exist. in ../components/button/button-macro.html.twig on line 19

因为属性 disabled 似乎是可选的,所以您需要考虑这一点。对于此用例,您可以使用过滤器 default,例如

{% if options.disabled|default %}
    disabled
{% endif %}