如果验证后有任何错误,我转发回输入控制器,如果没有错误,继续成功控制器。
在 ZF1 中,我能够做到这一点,因为 preDispatch() 中的转发不会执行如下调用的操作:
public function preDispatch()
{
parent::preDispatch();
if ($action == 'success' && $this->validate() === false) {
$this->_forward('input');
}
}
public function successAction()
{
}
public function inputAction()
{
}
在 ZF2 中,如果有任何错误,我会尝试在分派和转发时附加验证,但 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 不再读取,但我想让它普遍可用。