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 にそれを含める方法があるかもしれません。
誰かアイデアはありますか?
ありがとう