方法的Twig变量


Twig Variable Variables for a method

我正在尝试做一些在PHP中非常容易的事情,但在trick中却不那么容易。

基本上,我需要调用一个类方法,但我需要能够定义通过字符串调用的方法。

我有三种方法:getControlvsgetControlncgetControltr。然而,为了调用这些方法,我需要一个单独的变量来决定调用哪个方法。

这就是我现在要说的:

{% set neutPer = key.getControl~neutFaction %}

其中neutFaction可以是"vs"、"nc"或"tr"。

这似乎只触发了key.getControl,然后就这样了,连接丢失了。

有什么想法吗?

提前感谢!

您可以使用属性分支函数:

首先将字符串连接为:

{% set method = "getControl" ~ neutFaction %}

然后作为调用

{{ attribute(key, method) }}

您也可以将参数传递为:

{{ attribute(key, method, arguments) }}

此外,定义的测试可以检查动态属性的存在:

{{ attribute(object, method) is defined ? 'Method exists' : 'Method does not exist' }}

尝试{% set neutPer = (key.getControl~neutFaction) %}或者,您可以在将变量传递给trick的控制器/服务中更改这一点,这样您就不需要设置串联。