public function addAction()
{
$form = new ApplicationForm();
$this->view->form = $form;
if ($this->getRequest()->isPost()) {
$formData = $this->getRequest()->getPost();
if ($form->isValid($formData)) {
$name = $form->getvalue('name');
$class = $form->getvalue('class');
$file = new Application_Model_DbTable_Records();
$file->addRecord($name,$class);
$this->_helper->redirector('index');
}
}
}
在addAction控制器部分之上,当我点击AddAction时,当我点击提交记录在数据库中的输入时,我的表单正在等待用户输入。
现在我的问题是我想在提交表单数据后添加一些消息,无论是成功还是失败。
你能帮帮我吗?
非常感谢, viswa
答案 0 :(得分:0)
docs for the action-helper描述了一个例子。但标准用法是这样的:
添加记录后,在重定向之前,请在控制器中设置所需的消息:
public function addAction()
{
$form = new ApplicationForm();
$this->view->form = $form;
if ($this->getRequest()->isPost()) {
$formData = $this->getRequest()->getPost();
if ($form->isValid($formData)) {
$name = $form->getValue('name');
$class = $form->getValue('class');
$file = new Application_Model_DbTable_Records();
$file->addRecord($name,$class);
// Add the message here
$this->_helper->getHelper('FlashMessenger')->addMessage('Record added');
$this->_helper->redirector('index');
}
}
}
然后在indexAction
- 成功添加记录后重定向的控制器 - 获取消息并将其添加到您的视图中:
public function indexAction()
{
// All your existing processing
// Blah, blah..
// Get the messages from the FlashMessenger
$messenger = $this->_helper->getHelper('FlashMessenger');
$messages = $messenger->hasMessages() ? $messenger->getMessages() : [];
// Add the messages into the view
$this->view->messages = $messages;
}
最后,在您希望显示消息的索引视图脚本中的某个位置,检查消息和呈现,如:
<?php if ($this->messages): ?>
<div id="refresh-messages">
<ul>
<?php foreach ($this->messages as $message): ?>
<li><?= $message ?></li>
<?php endforeach ?>
</ul>
</div>
<?php endif ?>
包装div只是通过提供一个DOM元素id来帮助设置样式,你可以将CSS作为目标。
免责声明:未直接测试,只是从内存编码。