1

有没有办法,而不是显示模板 404 页面,有一个事件,当它找不到控制器或模块时,做一个动作,比如重定向?

4

1 回答 1

2

在您的onBootstrap方法中,您Module.php可以附加一个函数以在事件发生时执行,以下附加一个函数以在引发错误(异常)时执行:

public function onBootstrap(MvcEvent $e)
{
    $application = $e->getApplication();
    $em = $application->getEventManager();
    //handle the dispatch error (exception) 
    $em->attach(\Zend\Mvc\MvcEvent::EVENT_DISPATCH_ERROR, array($this, 'errorHandler'));
    //handle the view render error (exception) 
    $em->attach(\Zend\Mvc\MvcEvent::EVENT_RENDER_ERROR, array($this, 'errorHandler'));
}

然后定义函数以您想要的任何方式处理错误,以下是一个示例:

public function handleError(MvcEvent $e)
{
    //get the exception
    $exception = $e->getParam('exception');
    //...handle the exception... maybe log it and redirect to another page, 
    //or send an email that an exception occurred...
}
于 2013-10-01T12:57:00.860 回答