PhalconPHP响应重定向在微应用程序中无法正常工作

时间:2014-01-04 12:47:29

标签: php redirect response phalcon

我正在测试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

我已经解决了在上面的代码中使用与注释的开始处理程序相同的逻辑。 它并没有解决不起作用的反应,但这是我需要的。 希望它可以帮助别人。

3 个答案:

答案 0 :(得分:0)

你试过这个吗?

$app->response->redirect("/")->sendHeaders();

您需要发送正确的标头才能进行重定向。试试上面的代码。

答案 1 :(得分:0)

只需按以下步骤更换重定向:

$app->response->redirect("/");

答案 2 :(得分:0)

如果要重定向到根范围。您应该尝试以下代码:

request.LANGUAGE_CODE

否则,您可以按如下方式指定链接请求:

$app->response->redirect()->sendHeaders();

希望这会有所帮助。