2014-11-11 2 views
0

특정 조건을 만족할 때 사용자 정의 오류 메시지를 추가하고 싶습니다. 아래는 컨트롤러에 쓴 코드입니다. 다른 페이지로 이동하면 오류 메시지가 표시되지만 같은 페이지에 오류 메시지가 표시되지 않습니다.Magento가 사용자 정의 오류 메시지를 추가하고 있습니다.

동일한 페이지에 오류 메시지가 나타나고 다른 곳에서는 오류를 표시하지 않는 것이 이상적입니다. 당신이 다시로드 페이지를 강제하는 경우

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

당신은 레이아웃에서 마사지 블록을 추가했다? – sergio

+0

예, 템플릿으로 1column.phtml은 기본적으로 메시지 블록 – Krish

+0

을 호출합니다. 다른 페이지에 메시지가있을 경우 메시지 블록이 priviouse에서 호출되지 않습니다. 자, 진짜로 마시지 블록을 호출하는지 확인하십시오. – sergio

답변

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(); 
} 
관련 문제