Phalcon PHP:调度程序的“转发”功能不起作用

Phalcon PHP: Dispatcher's `forward` function does not work

在我的 CustomerclientController 中的 reentryAction 中,如果 post 参数的有效性检查成功,我想转发到 indexAction 中。

不幸的是,前锋不起作用。在调试时,我确定将再次调用 reentryAction 方法,而不是 indexAction。

我在我的 services.php 中注册了一个 Dispatcher,如下所示:

$di->setShared('dispatcher', function() use ($eventsManager) {

    $dispatcher = new MvcDispatcher();
    // Bind the eventsManager to the view component
    $dispatcher->setEventsManager($eventsManager);
    return $dispatcher;
});

CustomerclientController:

class CustomerclientController extends Controller {
    public function reentryAction($hash) {
        // ... a lot of code
        if ($this->request->isPost()) {
            // ... a lot of code
            if ($valid) {
                $this->dispatcher->forward([
                    "customerclient",
                    "index"
                ]);
                return;
            }
        }
    }
    public function indexAction() {
        //Does something wise
    }
}

我没有定义特殊路由,也没有使用 route.php 文件。

我做错了什么或忘记了什么?

在此先感谢您的帮助!

首先,尝试return dispatcher->forward()。其次,也许将键写在数组中。

if ($valid) 
  return $this->dispatcher->forward([
    "controller" => "customerclient",
    "action" => "index"
  ]);

希望对您有所帮助!

您确定需要使用 MvcDispatcher 吗? 我检查了我的项目,我正在使用 Dispatcher

$di->set('dispatcher', function() use ($di) {
    $dispatcher = new Dispatcher;
    $dispatcher->setEventsManager($eventsManager);
    return $dispatcher;
}); 

希望有用!