Всем привет, подскажите как решить следующию проблему, у меня есть twig шаблоны которые выгледят так
├── base.html.twig
├── email
│ └── index.html.twig
├── footer.html.twig
├── header.html.twig
├── index
│ ├── index.html.twig
│ ├── modal_load_file.html.twig
│ └── modal_load_link.html.twig
└── output
└── index.html.twig
В файле header.html.twig у меня выводится меню вот так:
Это контроллер для главной страницы
/**
* @Route("/", name="index", methods={"GET","HEAD"})
*/
public function index()
{
$menu = $this->getMenu();
// some code
return $this->render('index/index.html.twig', [
// some vars
'menu' => $menu
]);
}
base.html.twig выглядит так
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>{% block title %}Welcome!{% endblock %}</title>
<link rel="stylesheet" href="{{ asset('css/bootstrap.min.css') }}"/>
<link rel="stylesheet" href="{{ asset('css/datepicker.min.css') }}"/>
<link rel="stylesheet" href="{{ asset('css/main.css') }}"/>
<script src="{{ asset('js/jquery-3.4.1.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('js/popper.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('js/bootstrap.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('js/datepicker.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('js/validator.form.js') }}" type="text/javascript"></script>
<script src="{{ asset('js/download.files.js') }}" type="text/javascript"></script>
<script src="{{ asset('js/download.link.js') }}" type="text/javascript"></script>
<script src="{{ asset('js/main.js') }}" type="text/javascript"></script>
{% block stylesheets %}{% endblock %}
</head>
<body>
{{ include('header.html.twig') }}
{% block body %}{% endblock %}
{% block javascripts %}{% endblock %}
</body>
{{ include('footer.html.twig') }}
<script>
</script>
</html>
Вот индексная страница работает все ок, но когда я захожу на другой контроллер
То меню не работает (что вообщем то логично)
например
└── output
└── index.html.twig
base не может показать страницу потому что меню небыло передано в качестве параметра в шаблон, я считаю что в каждом контроллере передавать меню отдельно в качестве параметра в twig это дич кто ни буть знает как сделать так что бы при попытке зайти на любую страницу (ну или выбраную зарание группу страниц) метод возвразщаемый меню
автоматически передавай эти данные в twig? В laravel это делает через middleware в symfony сколько не гуглил так и не понял как это сделать правельно. Может кто подскажит как красиво решить данный вопрос?