我知道这是一个老问题,但是在互联网上搜索了 3 个小时并没有找到任何示例之后,我想确保它被记录在案。
回到您最初的尝试之一:
{{ attribute(lang, get, 'test') }}
我正在尝试做同样的事情,这应该根据文档工作。不幸的是,没有使用这个的例子。我发现方法名称(get)必须是一个字符串('get'),所以我改变了它,但它仍然不起作用。我最终做的是:
{% set myText = lang.get('test') %}
{{ myText }}
这很好用,但是当我必须全部完成时,要编写很多代码。所以我用这两种方法制作了一个简单的模板,并检查了编译后的输出。原文编译成这样:
echo twig_escape_filter($this->env, $this->getAttribute((isset($context["lang"]) ? $context["lang"] : null), "get", "test"), "html", null, true);
以及第二个(2 班轮):
$context["myText"] = $this->getAttribute((isset($context["lang"]) ? $context["lang"] : null), "get", array(0 => "test"), "method");
echo twig_escape_filter($this->env, (isset($context["myText"]) ? $context["myText"] : null), "html", null, true);
经过检查,我意识到了区别(检查第三个参数到getAttribute),arguments参数是一个数组!这是很好的信息。我把原来的改成这样:
{{ attribute(lang, 'get', ['test']) }}
它现在开始工作了!
希望这对某人有帮助!