我是 Zend 框架的新手,我有一个问题。我创建了一个控制器抽象类,它实现了以下功能:
protected function AddError($message) {
$flashMessenger = $this->_helper->FlashMessenger;
$flashMessenger->setNamespace('Errors');
$flashMessenger->addMessage($message);
$this->view->Errors = $flashMessenger->getMessages();
}
protected function activateErrors()
{
$flashMessenger = $this->_helper->FlashMessenger;
$flashMessenger->setNamespace('Errors');
$this->view->Errors = $flashMessenger->getMessages();
}
因此,对于每个控制器,我都可以使用 $this->AddError($error); 然后我在布局中呈现 $error 。所以我不想在每个控制器中处理 flashMesenger。
但是我必须在执行每个操作时执行 activateErrors 。
例如
我有一个控制器测试
类 TestController 扩展 MyController {
public function indexAction() {
$this->AddError("Error 1");
$this->AddError("Error 2");
$this->activateErrors();
}
public function index1Action() {
$this->AddError("Esdsd 1");
$this->AddError("sddsd 2");
$this->activateErrors();
}
}
有没有一种方法可以在操作结束时在每个控制器的每个操作中执行此 activateErrors 而无需复制代码。
我的意思是我不想在每个操作中都包含此代码。也许有一种方法可以将它包含在我的抽象类 MyController 中。
有人有什么想法吗?
谢谢