PHP无法从回调内部重定向

PHP无法从回调内部重定向,php,redirect,callback,Php,Redirect,Callback,这是个奇怪的问题 我的应用程序上有一个典型的事件服务,用于侦听在该服务中注册的要触发的事件。例如,如果管理员编辑产品,并且该事件已注册,则会根据注册事件的设置触发回调 在我的回调中,我设置了一个重定向到错误日志的方法,只是为了测试事件 public function editProduct($data) { Response::redirect(Url::link('tool/error_log', 'token=' . Session::get('token'), 'SSL')); }

这是个奇怪的问题

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

在我的回调中,我设置了一个重定向到错误日志的方法,只是为了测试事件

public function editProduct($data) {
    Response::redirect(Url::link('tool/error_log', 'token=' . Session::get('token'), 'SSL'));
}
回调正在执行,因为如果我var_转储数据参数,我会得到以下结果:

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')
    );
}
在我的应用程序中,无论是对象还是外观都可以在其他任何地方工作,所以我知道不是这些类

我甚至有跑步,它不会抛出任何错误


我被难住了。

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


是否有可能在标题之前出现某种输出?我相信这会导致一个白色的死亡屏幕。

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

您使用的是哪个框架?还是你自己编写了活动服务的代码?如果是这样的话,基本的代码部分将有助于重现案例。您是否使用了一些PHP函数,如register\u shutdown\u function()或类似的函数?重定向(http头)在此类函数中不起作用。还要检查HTTP头是否未发送到allready。否
注册\u shutdown\u function()
,但我会检查我的头,我没有想到这一点。如果头已在其他地方设置,则会出现错误。重定向方法应该执行类似于
header('Location:some_url')的操作;模具()