我想在应用程序模块引导程序中设置错误重定向。
以下是将handleError function
附加到事件管理器的代码:
$em->attach(\Zend\Mvc\MvcEvent::EVENT_DISPATCH_ERROR, array($this,'handleError'));
以下是handleError
类中的Application\Module
方法。
public function handleError(MvcEvent $e)
{
// error here is error-router-no-match
// echo $e->getError();
}
从这段代码中,我想添加一个子句来执行重定向到路由application.index.error
(Application\Controller\IndexController
,errorAction
)
我面临的问题是无法告知请求何时来自错误句柄重定向,因此会发生无限循环。
此外,
这失败了,因为目前没有匹配:
$router = $sm->get('router');
$request = $sm->get('request');
$matchedRoute = $router->match($request);
$params = $matchedRoute->getParams();
当没有路由匹配时,我如何在handleError
方法内确定请求实际来自错误处理程序请求?如果我需要将router
修改为确保找到路线匹配。