Я использую Sonata Pagebundle, и я впервые использую динамические маршруты.
Я создал маршрут и контроллер и сгенерировал страницу, используя команду build in sonata.
Страница теперь видна внутри моего дерева, и контроллер также вызывается всякий раз, когда я иду по этому маршруту.
Проблема в том, что я хочу иметь возможность вычислять некоторые данные на основе параметра маршрута и передавать эти данные в шаблон.
Как я могу отобразить шаблон точно так же, как это сделал бы Pagebundle С дополнительными данными, которые я вычислил в своем контроллере.
(Поэтому я также хочу, чтобы все блоки также отображались.)
В настоящее время я пытаюсь сделать следующее:
$cmsManager = $this->get('sonata.page.cms_manager_selector')->retrieve();
$currentPage = $cmsManager->getCurrentPage();
return $this->render('test_template.html.twig', [
'test' => 'Test123',
'page' => $currentPage,
'site' => $currentPage->getSite(),
]);
Проблема в том, что переменная test
не существует внутри моего шаблона.
Переменные page
и site
существуют с другой стороны ...
Что я здесь не так делаю?
EDIT:
Я также пытался отобразить страницу, используя следующую строку кода:
return $pageServiceManager->execute($currentPage, $siteRequest, ['test' => 'test123']);