Как переменная отображается с шаблоном веточку, вы можете использовать эту переменную в обоих родительских и дочерних шаблонов.
Другими словами, если у вас есть следующий базовый шаблон:
// 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',
]);
}
Вы можете используйте {{ hello }}
как в base.html.twig
, так и в child.html.twig
.
EDIT
Для глобальной переменной:
// app/config/config.yml
# ...
twig:
# ...
globals:
your_custom_var: "your_value"
Вы не можете определить переменную, которая всегда присвоенное определенному шаблону, переменная должна быть оказаны с ним динамически.
Примечание Вы можете определить глобальные переменные динамически, как это:
$this->get('twig')->addGlobal('entity', $entity);
Таким образом, вы можете легко придать ту же переменную на kernel.response
с помощью EventListener.
См. global variables in templates.
Вы можете использовать любую переменную, пока она существует в представлении, если вам нужно сделать это в файле base.html.twig, просто нужно передать эту переменную во всех действиях, которые используют шаблон, расширяющий этот base.html.twig. – abdiel