Различные файлы макетов для разных контроллеров

Как заставить мой модуль ZF2 загружать другой файл макета для конкретного контроллера?

У вас есть IndexController и IndexController в вашем прикладном модуле ZF2, а IndexController использует layout.phtml, но вы хотите использовать adminlayout.phtml для AdminController .

Как это возможно?

Solutions Collecting From Web of "Различные файлы макетов для разных контроллеров"

 class Module { public function onBootstrap($e) { $em = $application->getEventManager(); $em->attach(MvcEvent::EVENT_DISPATCH, function($e) { $controller = $e->getTarget(); if ($controller instanceof Controller\AdminController) { $controller->layout('layout/layoutadmin.phtml'); } else { $controller->layout('layout/layout.phtml'); } }); } } 

и не забудьте зарегистрировать новый контроллер, добавив эту конфигурацию в конфигурационный файл вашего модуля:

 'controllers' => array( 'invokables' => array( 'Application\Controller\Index' => 'Application\Controller\IndexController', 'Application\Controller\Admin' => 'Application\Controller\AdminController', ), ), 

другое самое лучшее Решение:

 'view_manager' => array( 'template_path_stack' => array( 'YOURMODULENAME' => __DIR__ . '/../view', ), 'template_map' => array( 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', ), ), 

измените YOURMODULENAME на ваше конкретное имя модуля