2013-03-12 3 views
1

유효성 검사 후 오류가 있으면 입력 제어기로 다시 전달하고 오류가 없으면 성공 제어기를 계속 수행하십시오. ZF2에서ZF2 - 전달 후 실행 중지

public function preDispatch() 
{ 
    parent::preDispatch(); 
    if ($action == 'success' && $this->validate() === false) { 
     $this->_forward('input'); 
    } 
} 

public function successAction() 
{ 
} 

public function inputAction() 
{ 
} 

를, 내가 어떤 경우 파견에 대한 검증을 첨부하려고 및 전달 오전 :

는 ZF1, 나는 다음과 같은 조치를 호출 실행하지 않습니다() preDispatch에 fowarding 때문에이 작업을 수행 할 수 있었다 오류가 발생하지만 ZF2는 계속 실행되므로 inputAction과 successAction이 모두 호출됩니다.

$events->attach('dispatch', function (MvcEvent $e) use ($controller) { 
    $result = $this->validate($controller); 
    if ($result->isValid() === false) { 
     $callingClassName = get_class($this); 
     $test = $controller->forward()->dispatch($callingClassName, array('action' => 'input')); 
    } 
} 

이 문제에 대한 해결책은 없나요? 전달 후 실행을 멈추고 싶습니다 ...

successAction에서 ViewModel을 반환하는 것이 더 이상 알 수 없지만 일반적으로 사용할 수있게 만들고 싶습니다.

답변

3

난 당신이

$e->stopPropagation(); 

이 더 이벤트 전파를 중지 찾고있는 것 같아요.

+0

슈퍼! 고마워. – htnux