我正在使用 Zend 1.12 和 php 5.4.3 并且 flashMessenger->getMessages() 突然停止在控制器操作中工作。
在AController中,创建了某种类型的账户,创建它需要9个步骤,所以我有9个动作create1-9Action
在每一步中,我使用 flashmessenger 将表单数据传递到下一步。这是一个动作的典型结构:
public function create5Action()
{
$form = new My_Form();
$messages = $this->_helper->flashMessenger->getMessages();
$data = $messages[0];
if ($this->_request->isPost())
{
if ($form->isValid($this->_request->getPost()))
{
/* form treatment */
$this->_helper->flashMessenger->addMessage($data);
$this->_redirect($this->_helper->url("create6", "A", null)); // redirect to next step
}
}
$this->_helper->flashMessenger->addMessage($data);
$this->view->form = $form;
}
在此操作(create5)中,从 create4Action 到达时数据是完整的,之前将其作为消息添加时是完整的$this->view->form = $form;
,但是当我将新元素添加到表单并提交时,它$messages = $this->_helper->flashMessenger->getMessages();
是空的,我不知道为什么,因为它正在为所有其他操作工作。