Events 未找到模板之前的ZF2事件

Events 未找到模板之前的ZF2事件,events,routes,zend-framework2,Events,Routes,Zend Framework2,zf2中是否存在可以附加到sharedEventManager/eventManager的事件,该事件在设置not_found_模板之前调用? 我想在我的网站上实现一个“正在构建的页面”模块。如果调用现有路由,则一切正常。但当调用不存在的路由时,会显示标准404错误页面,因为找不到该路由 这就是我的Module.php public function onBootstrap(Event $e) { $e->getApplication()->getEventManager()

zf2中是否存在可以附加到sharedEventManager/eventManager的事件,该事件在设置not_found_模板之前调用? 我想在我的网站上实现一个“正在构建的页面”模块。如果调用现有路由,则一切正常。但当调用不存在的路由时,会显示标准404错误页面,因为找不到该路由

这就是我的Module.php

public function onBootstrap(Event $e)
{
    $e->getApplication()->getEventManager()->getSharedManager()->attach(
        'Zend\Mvc\Controller\AbstractActionController', 'dispatch', function ($e) {
            $e->getTarget()->layout('layout/underconstruction');
        }, -1000
    );

}
你们谁有主意


非常感谢

侦听分派事件是毫无意义的,因为路由找不到要分派到的控制器,而是侦听视图模型上的render事件和setTemplate,类似的操作应该可以工作

$e->getApplication()->getEventManager()->attach(MvcEvent::EVENT_RENDER, function ($e) {        
    $response = $e->getResponse();
    if ($response->getStatusCode() == 404) {
        $e->getViewModel()->setTemplate('layout/underconstruction');
    }
}, -1000);

监听dispatch事件是毫无意义的,因为路由找不到要分派到的控制器,而是监听视图模型上的render事件和setTemplate,类似的事情应该可以工作

$e->getApplication()->getEventManager()->attach(MvcEvent::EVENT_RENDER, function ($e) {        
    $response = $e->getResponse();
    if ($response->getStatusCode() == 404) {
        $e->getViewModel()->setTemplate('layout/underconstruction');
    }
}, -1000);

为什么不将每个请求重定向到正在构建的页面(其中包含布局/欠构建)?我认为这可以在不生成额外控制器/操作的情况下完成!为什么不将每个请求重定向到正在构建的页面(其中包含布局/欠构建)?我认为这可以在不生成额外控制器/操作的情况下完成!