0
該事件至今我曾在我的應用程序的單一佈局,module.config.php配置如下:ZF2:開關基於Idenitity佈局 - 使用
'view_manager' => array(
'template_map' => array(
'layout/layout' => __DIR__ . '/../view/layout/layout.phtml',
),
我現在嘗試切換基於用戶是否登錄的佈局。這個信息是我Core\Auth
服務,而我如下使用它在我的module.php
:
public function onBootstrap(MvcEvent $e)
{
...
$eventManager->attach('dispatch', function ($e) {
$application = $e->getApplication();
$auth = $application->getServiceManager()->get('Core\Auth');
if (!$auth->isLoggedIn()) {
$viewModel = $e->getViewModel();
$viewModel->setTemplate('layout/public');
}
}, -1000000);
}
的問題是,我不知道哪個事件將其附加到,並要使用的優先級。如果我把它安裝到:...
- ...引導或路線事件時,它會覆蓋
- ...具有高優先級它被覆蓋dispatch事件
- ...的調度事件的優先級較低,它會覆蓋控制器操作可能做出的任何佈局更改,例如$視圖 - > setTerminal(真)
- ...渲染事件,(再次),它會替換行動
應該在哪裏我可以將其附着所做的更改?並以什麼優先?