我正在使用Twig 过滤器在我的宏default
中指定参数默认值:
{% macro base(type, title, content, separator, dismissable) %}
{% spaceless %}
{% debug dismissable %}
{% set separator = separator|default('!') %}
{% set dismissable = dismissable|default(true) %}
{% debug dismissable %}
{# Beginning outputting... #}
{% endspaceless %}
{% endmacro %}
问题是dismissable
参数类型应该是boolean
. 但是,当通过false
过滤器时会对其进行评估并分配一个true
默认值。示例输出:
{{ base('success', 'Title', 'Hello', '!', false) }}
boolean false
boolean true
这是一个错误吗?这是(部分)过滤器描述:
如果值未定义或为空,则默认过滤器返回传递的默认值,否则返回变量的值。
false
甚至没有提到布尔值的评估。我的临时解决方法是:
{% set dismissable = dismissable is not defined or dismissable is null ?
true : dismissable %}