3

ZF2 モジュールに特定のコントローラの他のレイアウト ファイルをロードさせるにはどうすればよいですか?

ZF2アプリケーション モジュールに と があり、IndexControllerがlayout.phtmlを使用しているが、 にadminlayout.phtmlを使用したいとします。AdminControllerIndexControllerAdminController

それはどのように可能ですか?

4

3 に答える 3

7
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',
    ),
),
于 2012-08-12T10:01:17.753 に答える
1

他の最善の解決策:

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

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

YOURMODULENAMEをモジュール固有の名前に変更します

于 2013-02-02T07:58:24.587 に答える