条件内执行语句
Execute statement inside conditional
是否可以在 Twig 条件语句中调用可执行函数?
我有一个路径函数,如果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 中有 Twig function path
,但我认为没有 Twig 标签 path
。您确定您的代码 ({% path file, 'reference' %}
) 正确吗?
是否可以在 Twig 条件语句中调用可执行函数?
我有一个路径函数,如果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 中有 Twig function path
,但我认为没有 Twig 标签 path
。您确定您的代码 ({% path file, 'reference' %}
) 正确吗?