Доступ к переменным ViewModel при событии отправки

Это вопрос ZF2.

Я пытаюсь изменить свой шаблон, в зависимости от переменной, установленной на моем контроллере (поскольку именно там будет решаться, какой шаблон использовать). В моем модуле onBooststrap у меня есть:

$this->eventManager->attach('dispatch', function($e) { if (0 === strpos($e->getRouteMatch()->getParam('controller'), __NAMESPACE__, 0)) { $e->getViewModel()->setTemplate('layout'); } }, -100); 

и в моем контроллере:

 class IndexController extends AbstractActionController { public function indexAction () { $view = new \Zend\View\Model\ViewModel(); $view->setVariable("layout", "layout"); return $view; } } 

но как я могу получить доступ к этой переменной представления «layout», поэтому я могу изменить ее в событии отправки на setTemplate?

Related of "Доступ к переменным ViewModel при событии отправки"

Если посмотреть на метод MvcEvent класс MvcEvent то есть метод getResult() , это может содержать результат действия контроллера.

В противном случае вы посмотрели плагин контроллера плагина? Этот плагин позволит вам изменить шаблон:

 $this->layout('new layout'); 

Конечно, это должно быть внутри контроллера и, скорее всего, нужно добавить шаблон в шаблонную карту.