Я использую Restful Controller и при определенных условиях я хотел бы вызвать MvcEvent::EVENT_DISPATCH_ERROR
и сразу после этого остановить выполнение контроллера. В моем классе Module
я прикрепил для этого прослушиватель событий, но не могу найти способ запустить его из контроллера представления.
Мой Module
код:
public function onBootstrap(MvcEvent $mvcEvent) {
$eventManager = $mvcEvent->getApplication()
->getEventManager();
$eventManager->attach(array(MvcEvent::EVENT_DISPATCH_ERROR, MvcEvent::EVENT_RENDER_ERROR), array($this, 'error'));
}
public function error(MvcEvent $mvcEvent) {
echo $mvcEvent->getError();
die();
}
и мой код контроллера:
public function indexAction() {
$mvcEvent = $this->getEvent();
$mvcEvent->setError('test-error-code');
$mvcEvent->getTarget()->getEventManager()->trigger(MvcEvent::EVENT_DISPATCH_ERROR, $mvcEvent);
return;
}