2014-10-30 2 views
1

저는 Zend_Controller_Action_Helper_Abstract를 확장하여 사용자 정의 Helper 클래스를 작성하고 있습니다. 이 Helper 클래스에서는 FlashMessenger를 사용하여 필요할 때 메시지를 표시하려고합니다. 나는 경고, 성공 및 오류 메시지를 차별화하고 싶습니다 (아니요, 저는 인종 차별 주의자가 아닙니다).Action Helper의 FlashMessenger 도우미에 대한 인수

Zend_Controller_Action을 확장하는 클래스에서이 것을 수행합니다. 아래를 참조하십시오.

$this->_helper->FlashMessenger(array('error' => 'An error occured')); 

당신이 함께 getActionController()getHelper 방법을 사용하여 Helpername를 얻을 수 Zend_Controller_Action_Helper_Abstract 확장하는 도우미 클래스를 작성. 아래를 참조하십시오.

$this->getActionController()->getHelper('FlashMessenger'); 

은 내가 getHelper의 mehod 내부 FlashMessenger 도우미에 인수로 array('error' => 'An error occured')을 추가 할 수 있습니다. 궁금한데, getHelper를 통해 FlashMessenger 도우미에 인수를 추가 할 수 있습니까? 그렇지 않다면 어떻게이 문제를 해결할 수 있습니까? 이 link

답변

1

는 솔루션을 제공 :

그래서 사람이, 당신은 Zend_Controller_Action_HelperBroker 클래스와 정적 도우미 getStaticHelper를 사용하여이 같은 것을 사용한다 액션 컨트롤러의 외부에서 플래시 메시지를 설정하고자하는 경우

. getHelper('FlashMessenger') 이후

$flashmessenger = Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger'); 
$flashmessenger->addMessage(array('error' => 'An error occured')); 

Zend_Controller_Action_Helper_FlashMessenger의 인스턴스를 반환, 당신이 할 수 있어야한다 : 좋은 답변

$this->getActionController()->getHelper('FlashMessenger')->addMessage(array('error' => 'An error occured')); 
+1

+1, 나는 addMessage는()는 배열 데이터를 받아들이는 것을 알고하지 않았다 Zend 라이브러리의 주석은 @param string $ message라고 말하기 때문에. – Julian

관련 문제