Sin*_*hti 3 php zend-framework zend-framework-modules zend-framework2
如何让我的ZF2模块加载特定控制器的其他布局文件?
想想你IndexController和AdminController你的ZF2应用模块中和IndexController是使用layout.phtml但要使用adminlayout.phtml的AdminController.
这怎么可能?
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');
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
并且不要忘记通过在模块配置文件中添加此配置来注册新控制器:
'controllers' => array(
'invokables' => array(
'Application\Controller\Index' => 'Application\Controller\IndexController',
'Application\Controller\Admin' => 'Application\Controller\AdminController',
),
),
Run Code Online (Sandbox Code Playgroud)