相关疑难解决方法(0)

在Twig/Symfony 2中使用"默认"过滤器和布尔宏参数的错误?

我正在使用defaultTwig过滤器在我的宏中指定参数默认值:

{% 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 %}
Run Code Online (Sandbox Code Playgroud)

问题是,dismissable参数类型应该是boolean.但是,在传递false过滤器时会对其进行求true值并指定默认值.一个示例输出:

{{ base('success', 'Title', 'Hello', '!', false) }}

boolean false
boolean true
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?这是(部分)过滤器描述:

如果值未定义或为空,则默认过滤器返回传递的默认值,否则返回变量的值.

false甚至没有提到布尔值的评估.我的临时解决方法是:

{% set dismissable = …
Run Code Online (Sandbox Code Playgroud)

symfony twig

5
推荐指数
2
解决办法
3042
查看次数

标签 统计

symfony ×1

twig ×1