方法的Twig变量变量

时间:2015-03-26 16:23:43

标签: php symfony twig

我试图在PHP中做一些非常简单的事情,但在树枝上并不那么容易。

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

我有3种方法:getControlvsgetControlncgetControltr。但是,为了调用这些方法,我需要一个单独的变量来确定要调用哪个。

这就是我现在试图打电话的地方:

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

neutFaction可以是“vs”,“nc”或“tr”。

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

有什么想法吗?

提前致谢!

2 个答案:

答案 0 :(得分:4)

您可以使用attribute twig function

首先将字符串连接为:

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

然后打电话给

{{ attribute(key, method) }}

您也可以将参数传递为:

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

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

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

答案 1 :(得分:-1)

试试{% set neutPer = (key.getControl~neutFaction) %} 或者你可以在控制器/服务中更改这个,将变量传递给twig,这样就不需要设置连接。