方法的Twig变量变量

Mat*_*agh 4 php symfony twig

我正在尝试做一些在PHP中非常简单但在树枝中却不那么容易的事情。

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

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

这是我现在正试图调用的:

{% set neutPer = key.getControl~neutFaction %}
Run Code Online (Sandbox Code Playgroud)

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

这似乎只触发了key.getControl,仅此而已,串联丢失了。

有任何想法吗?

提前致谢!

Mat*_*teo 5

您可以使用属性twig函数

首先将字符串连接为:

{% set method = "getControl" ~ neutFaction %}
Run Code Online (Sandbox Code Playgroud)

然后称为

{{ attribute(key, method) }}
Run Code Online (Sandbox Code Playgroud)

您还可以将参数传递为:

{{ attribute(key, method, arguments) }}
Run Code Online (Sandbox Code Playgroud)

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

{{ attribute(object, method) is defined ? 'Method exists' : 'Method does not exist' }}
Run Code Online (Sandbox Code Playgroud)