Magento добавляет пользовательское сообщение об ошибке

0

Я хочу добавить пользовательское сообщение об ошибке, когда оно удовлетворяет конкретному условию. Ниже приведен код, который я написал на контроллере. Сообщение об ошибке появляется, когда я перехожу на другую страницу, однако на этой странице не отображается сообщение об ошибке.

В идеале он должен показывать сообщение об ошибке на одной странице и не хочет показывать ошибку где-либо еще.

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();
}
Теги:
magento

1 ответ

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();
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню