我正在测试http://docs.phalconphp.com/en/latest/reference/micro.html
中的以下PhalconPHP微应用程序代码<?php
use Phalcon\Mvc\Micro,
Phalcon\Events\Manager as EventsManager;
//Create a events manager
$eventManager = new EventsManager();
//Listen all the application events
$eventManager->attach('micro', function($event, $app) {
if ($event->getType() == 'beforeExecuteRoute') {
if ($app->session->get('auth') == false) {
$app->response->redirect("/");
//Return (false) stop the operation
return false;
}
}
});
$app = new Micro();
//Bind the events manager to the app
$app->setEventsManager($eventManager);
问题是它永远不会重定向,就像$app->response->redirect("/");
不起作用。
如果我尝试返回$app->response->redirect("/");
,则事件链不会停止并返回原始请求的URL而不是重定向中的URL。
有什么想法吗?
[更新 - 解决方案]
检查此代码:https://github.com/cmoore4/phalcon-rest/blob/develop/index.php
我已经解决了在上面的代码中使用与注释的开始处理程序相同的逻辑。 它并没有解决不起作用的反应,但这是我需要的。 希望它可以帮助别人。
答案 0 :(得分:0)
你试过这个吗?
$app->response->redirect("/")->sendHeaders();
您需要发送正确的标头才能进行重定向。试试上面的代码。
答案 1 :(得分:0)
只需按以下步骤更换重定向:
$app->response->redirect("/");
答案 2 :(得分:0)
如果要重定向到根范围。您应该尝试以下代码:
request.LANGUAGE_CODE
否则,您可以按如下方式指定链接请求:
$app->response->redirect()->sendHeaders();
希望这会有所帮助。