在分支中的if条件中使用字符串变量



我在树枝上遇到了一个问题,如下所示:

我想使用一个变量,它是一个字符串,它是内部的一个条件(我从yml文件的表中读取(,if语句考虑这个例子。

{% set condition = 'a condition' %}
{% if condition == true ]%
do something
{% endif %} 

注意:用作变量的字符串包含一个分支代码

怎么可能做到这一点??

twitch中有类似php的eval((的吗?

乙醇提前

您可以使用is_granted函数进行一些棘手的破解。它被创建用于安全目的,但它将适用于您的用例。

is_granted可以计算Symfony表达式,然后结果可以用于条件语句。

这个例子适用于您的情况:

{% set condition = "true" %}
{% if is_granted(expression(condition)) %}
CONDITION IS TRUTHY
{% endif %}

要使其工作,您需要安装symfony表达式和安全组件:

composer require symfony/expression-language
composer require security

此外,如果您不使用它来授予用户对模板中某些位置的访问权限,那么最好创建自己的trick函数,该函数将执行类似is_granted的Symfony表达式。

最新更新