Twig 在条件语句中执行语句

Twig 在条件语句中执行语句,twig,templating,shorthand,Twig,Templating,Shorthand,可以在Twig条件语句中调用可执行函数吗 我有一个path函数,如果name变量为空,我想输出路径。现在我有两个选择: {% path file, 'reference' %} // calling path function {{ file.name ?: file.path }} // Conditional 但我想要的是: {% file.name ?: path file, 'reference' %} 看起来path是一个标记而不是一个函数。如果它是一个函数,您可以这样使用它: {

可以在Twig条件语句中调用可执行函数吗

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

{% path file, 'reference' %} // calling path function
{{ file.name ?: file.path }} // Conditional
但我想要的是:

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

看起来
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中有一个标签,但我认为没有细枝标签
path
。您确定您的代码(
{%path文件,'引用“%}
)正确吗?

谢谢@martias,因此可以用速记方式执行函数。我只是假设路径是一个函数。