【问题标题】:Execute statement inside conditional在条件内执行语句
【发布时间】:2018-02-19 16:02:56
【问题描述】:

是否可以在 Twig 条件语句中调用可执行函数?

我有一个路径函数,如果 name 变量为空,我想输出路径。现在我有这两个选择:

{% path file, 'reference' %} // calling path function
{{ file.name ?: file.path }} // Conditional

但我想要类似的东西:

{% file.name ?: path file, 'reference' %}

【问题讨论】:

    标签: twig templating shorthand


    【解决方案1】:

    看起来path 是一个标签而不是一个函数。如果它是一个函数,你会这样使用它:

    {% path(file, 'reference') %}
    

    相比之下,Twig 有一个函数dump,在 Symfony 中你可以使用同名的标签。以下是您如何使用它们:

    {{ dump(foo) }} {# function #}
    {% dump foo %}  {# tag #}
    

    你看出区别了吗?

    如果path 是一个函数,那么这两种情况都有可能:

    {{ file.name ?: path(file, 'reference') }}
    {% do file.name ?: path(file, 'reference') %}
    

    两者都是一样的,除了第二个不打印任何东西。

    因为path 似乎是一个标签,所以我认为不可能按照您的要求进行操作。 (也有可能既是标签又是函数。如果是这种情况,请使用函数而不是标签。)

    编辑:你在使用 Symfony 吗? Symfony 中有一个Twig function path,但我认为没有 Twig 标签path。您确定您的代码 ({% path file, 'reference' %}) 正确吗?

    【讨论】:

    • 感谢@martias,因此可以使用简写方式执行函数。我只是假设路径是一个函数。
    猜你喜欢
    • 2016-09-07
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 2015-11-26
    相关资源
    最近更新 更多