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;
});
希望有用!
在我的 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;
});
希望有用!