到目前为止,我的应用程序中只有一个布局,在module.config.php中配置如下:
'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);
}
问题是我不知道将哪个事件附加到哪个事件以及使用哪个事件。如果我把它附在:...
我应该把它附在哪里?有什么优先权?
答案 0 :(得分:0)
Opps,我的错误。
我在我的索引/索引操作中进行了相同的isLoggedIn()
测试,这使得结果变得混乱。我删除了它并将布局开关附加到路由事件,默认优先级,到目前为止它工作正常!