Twig:打印变量名为 String 的变量的值

Twig: Print the value of a variable where the variable name is String

我有一个名为 e.g. 的变量var1 其值为 value1 作为字符串。 如何打印变量 var1 的值,其中 var1 是作为字符串获得的?

{{ set container = 'var1' }}

变量container的值是动态的。根据 container 的值,我需要打印它的值;在这种情况下,我需要打印 'value1'.

我正在寻找这样的东西

{{ attribute(this, container) }} /* <= 这不会,因为 this 没有在 Twig 中定义 */

原来我错了

您可以使用 _context 变量,它包含传递给模板的所有变量。

尝试{{ dump(_context) }}

Relevant Documentation

您可以创建一个函数来传递此上下文和数组键以访问该值。

这个 twig 函数应该可以正常工作:

public function getAttribute($context, $key)
{
    if (!array_key_exists($key, $context)) {
        return '';
    }

    return $context[$key];
}

随着传递的变量 title=foo 和传递的另一个变量 refTitle=title,这应该输出 "foo".

{{ attribute(_context, refTitle) }}