我希望在具体满足特定条件时添加自定义错误消息。下面是我在控制器上写的代码。当我导航到其他页面时,会显示错误消息,但这不会在同一页面中显示错误消息。
理想情况下,它应该在同一页面上显示错误消息,并且不希望在其他任何位置显示错误。
public function testAction(){
$this->loadLayout()->_initLayoutMessages('customer/session');
if(!isset($_FILES['docname']['name']) && $_FILES['docname']['name'] == ''){
Mage::getSingleton('customer/session')->addError('Custom error message');
}
$this->renderLayout();
}
答案 0 :(得分:1)
如果强制重新加载页面,错误消息将显示在同一页面上:
if (!isset($_FILES['docname']['name']) && $_FILES['docname']['name'] == '') {
$this->_getSession()->addError('Custom error message');
$this->_redirect('*/*/');
return;
}
在同一页面上显示错误消息的另一种方法是覆盖块中的_prepareLayout()函数:
protected function _prepareLayout() {
// IF statement
$this->getMessagesBlock()->addError('Custom error message');
// End of IF
return parent::_prepareLayout();
}