【问题标题】:Laravel 5.2 : "return redirect()" not working properly inside Custom Event HandlersLaravel 5.2:“return redirect()”在自定义事件处理程序中无法正常工作
【发布时间】:2016-09-08 15:13:42
【问题描述】:

在 Laravel 5.2 中,我有我的 自定义 事件处理程序(用于登录事件)。像这样:

protected $listen = [
    'Illuminate\Auth\Events\Login' => ['App\Listeners\UserLoggedIn'],
];

app/Listeners/UserLoggedIn.php 中有 handle 函数:

public function handle(Login $event)
{
    /**
     * Some codes here
     */

    if ( $foo==$bar ) {
        //echo "I was here!";
        //exit;

        return redirect('mypage');
    }

}

mypage 路由定义正确,可以通过 url 手动调用。 (它运行)。所以mypage路由没有问题。

当事件被触发时,除了return redirect('mypage'); 之外的一切都正常,即使进程陷入IF 条件。 (然后进程继续调用主(默认)路由,而不是mypage 路由。)

有什么想法吗?

【问题讨论】:

  • “响应”永远不会脱离应用程序,它只是从该处理程序返回的值。然后它必须在某个时候从管道中的其他东西返回。

标签: laravel redirect login event-handling laravel-5.2


【解决方案1】:

我知道这不是最好的解决方案,但至少我找到了一个可行的解决方法。我不能在 Handler(s) 中使用 Laravel 的 redirect(),而是使用 PHP 原生重定向,然后强制退出函数。

喜欢:

header("location: /mypage");
return;

至少它可以让我在应该的地方停止功能,然后让我去我需要的地方。

【讨论】:

    猜你喜欢
    • 2014-07-27
    • 2013-03-25
    • 2021-12-12
    • 2019-06-06
    • 1970-01-01
    • 2016-07-18
    • 2016-04-11
    • 2021-03-30
    • 2016-12-05
    相关资源
    最近更新 更多