在条件内执行语句

时间:2018-02-19 16:02:57

标签: twig templating shorthand

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

我有一个路径功能,如果name变量为空,则想输出路径。现在我有这两个选项:

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

但我想要像:

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

1 个答案:

答案 0 :(得分:1)

看起来ModelState是标记而不是函数。如果它是一个函数,你可以像这样使用它:

path

相比之下,Twig有一个函数{% path(file, 'reference') %} ,而在Symfony中你可以使用同名的标签。以下是您如何使用它们:

dump

你看到了区别吗?

如果{{ dump(foo) }} {# function #} {% dump foo %} {# tag #} 是一个函数,那么这两个函数都可能成为可能:

path

两者都是相同的,除了第二个没有打印任何东西。

由于{{ file.name ?: path(file, 'reference') }} {% do file.name ?: path(file, 'reference') %} 似乎是一个标签,我不认为它可以做你所要求的。 (它也可能是标签和功能。如果是这种情况,请使用功能而不是标签。)

编辑:您使用的是Symfony吗?在Symfony中有一个Twig function path,但我不认为那里有一个Twig标签path。您确定您的代码(path)是否正确?