我想知道如何在交响乐应用程序中使用base.html.twig中的自定义变量。
我知道我可以使用 {{ app.any }},但是如果我想,我将如何使用 {{ myvariable }} 或 {{ myentity.row }}?
谢谢
当变量是使用 twig 模板呈现时,您可以在父模板和子模板中使用此变量。
换句话说,如果您有以下基本模板:
// base.html.twig
<html>
<body>
{{ block body }}
{{ endblock }}
</body>
</html>
以下子模板:
// child.html.twig
{% extends 'base.html.twig' %}
{% block body %}
// content
{% endblock %}
以及以下控制器操作:
public function renderVariableAction()
{
return $this->render('child.html.twig', [
'hello' => 'Hello world',
]);
}
您可以在base.html.twig
和child.html.twig
中使用{{ hello }}
。
编辑
对于全局变量:
// app/config/config.yml
# ...
twig:
# ...
globals:
your_custom_var: "your_value"
不能定义始终分配给特定模板的变量,必须动态呈现该变量。
注意 您可以像这样动态定义全局变量:
$this->get('twig')->addGlobal('entity', $entity);
因此,您可以使用事件侦听器轻松地在kernel.response
上注入相同的变量。
请参阅模板中的全局变量。