3
我想補充的錯誤處理module.php
添加所有錯誤消息閃光燈Messenger和重定向到一個特定的頁面(在我的要求):如何訪問module.php中的控制器插件,而不使用ZF2中的任何控制器對象..?
public function handleError(MvcEvent $e) {
$exception = $e->getParam('exception');
$controller = $e->getTarget();
//echo $exception->getMessage(); exit;
if (!$e->getApplication()->getServiceManager()->get('AuthService')->hasIdentity()) {
$controller->flashMessenger()->addErrorMessage("Session Expired..!!");
return $e->getTarget()->plugin('redirect')->toRoute('auth', array('action' => 'login'));
}
switch ($exception->getCode()) {
case "2003" :
$controller->flashMessenger()->addErrorMessage("Unable to connect database..!!");
break;
default :
$controller->flashMessenger()->addErrorMessage($exception->getMessage());
break;
}
$e->getApplication()->getServiceManager()->get('AuthService')->clearIdentity();
return $e->getTarget()->plugin('redirect')->toRoute('auth', array('action' => 'login'));
}
但在一些錯誤的投擲呼籲對$e->getTarget()
未定義的方法插件因爲在某些情況下,插件綁定之前會生成錯誤。我想要一種訪問redirect and flash messenger plugins
的方式,而不用引用任何控制器。