ZF2 モジュールに特定のコントローラの他のレイアウト ファイルをロードさせるにはどうすればよいですか?
ZF2アプリケーション モジュールに と があり、IndexController
がlayout.phtmlを使用しているが、 にadminlayout.phtmlを使用したいとします。AdminController
IndexController
AdminController
それはどのように可能ですか?
ZF2 モジュールに特定のコントローラの他のレイアウト ファイルをロードさせるにはどうすればよいですか?
ZF2アプリケーション モジュールに と があり、IndexController
がlayout.phtmlを使用しているが、 にadminlayout.phtmlを使用したいとします。AdminController
IndexController
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');
}
});
}
}
モジュール構成ファイルに次の構成を追加して、新しいコントローラーを登録することを忘れないでください。
'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をモジュール固有の名前に変更します