PHP 无法从回调内部重定向

PHP Cannot Redirect from Inside a 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 运行 而且它没有抛出任何错误。

我被难住了。

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

是否有可能在您的 header 之前发生某种输出?我相信那会导致白屏死机。

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