Twig:在变量名为字符串的情况下打印变量的值

4

我有一个变量名为var1,它的值是字符串value1

如果var1是以字符串形式获取的,如何打印变量var1的值?

假设

{{ set container = 'var1' }}

变量container的值是动态的。根据container的值,我需要打印它的值;在这种情况下,我需要打印'value1'。
我正在寻找像这样的东西 {{ attribute(this, container) }} /* <= 这将不起作用,因为this在Twig中未定义 */
1个回答

2
原来我错了。
您可以使用_context变量,它包含所有传递给模板的变量。
尝试{{ dump(_context) }} 相关文档 您可以创建一个函数,该函数接收此上下文和数组键以访问该值。
这个Twig函数应该可以正常工作:
public function getAttribute($context, $key)
{
    if (!array_key_exists($key, $context)) {
        return '';
    }

    return $context[$key];
}

通过传递变量title=foo和另一个变量refTitle=title,这应该输出"foo"。

{{ attribute(_context, refTitle) }}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接