Во-первых.Это плохая практика.Вы должны сделать 3 обхода обхода (все плагины до и после отправки, контроллеры до и после, ...) - если возможно, я бы переключился на один плагин фронт-контроллера, который заполнит соответствующие переменные макета и использует партиалы / просмотр помощников длясделать их.
Проблема с вашим кодом в том, что в postDispatch () ваш запрос уже имеет isDispatched = true
, что означает, что он не будет отправлен снова.Вариант может быть, чтобы создать запрос самостоятельно.А затем отправьте его в стек действий.
Также вы можете использовать методы actiontack $this->actionstack($action, $controller, $module, $params)
, которые создадут запрос для вас;) Вы можете получить текущие параметры, например, $params = $frontController->getRequest()->getParams()
или sth.вот так (не уверен на 100% в названии метода).
РЕДАКТИРОВАТЬ:
Если вы поместите рендеринг панели инструментов в макет, то проблем не будет.Вы можете назначить переменные представлению, и они будут готовы в макете.У тебя просто будет echo $this->render('toolbar.phtml');
и все.Он всегда будет отображаться после выполнения всех действий, поскольку макет является последним отображаемым видом.Просто убедитесь, что ваши переменные панели инструментов не сталкиваются с другими переменными (хорошая идея - перефиксировать их чем-нибудь - скажем, $this->toolbarUsername;$this->toolbarIsLogged
и т. Д.)