PHP无法从回调内部重定向

时间:2015-07-13 10:22:59

标签: php redirect callback

这很奇怪。

我的应用程序上有一个典型的事件服务,用于侦听在服务中注册的要触发的事件。如果管理员编辑了一个产品,并且该事件已注册,则会根据已注册事件的设置触发回调。

在我的回调中,我设置了一个重定向到错误日志,仅用于测试事件。

public function editProduct($data) {
    Response::redirect(Url::link('tool/error_log', 'token=' . Session::get('token'), 'SSL'));
}

回调正在执行,因为如果我var_dump数据参数我得到这个:

array (size=1)
  'product_id' => string '42' (length=2)

但由于某种原因,重定向将不会执行,不会抛出任何错误或异常,也不会执行任何操作。

我也试过没有外墙:

public function editProduct($data) {
    $this->response->redirect(
        $this->url->link('tool/error_log', 'token=' . $this->session->data['token'], 'SSL')
    );
}

我也尝试过返回重定向:

public function editProduct($data) {
    return $this->response->redirect(
        $this->url->link('tool/error_log', 'token=' . $this->session->data['token'], 'SSL')
    );
}

对象或外观都可以在我的应用程序的其他地方使用,所以我知道这不是那些类。

我甚至有Whoops正在运行,并且不会抛出任何错误。

我很难过。

2 个答案:

答案 0 :(得分:0)

我还没有足够的评论,所以我希望我能把这个作为答案。

是否有可能在标题之前出现某种输出?我相信这会导致白屏死机。

答案 1 :(得分:0)

我通过在重定向后放置一个退出来解决这个问题。显然,重定向的标题被覆盖了。