Laravel - LoginController | 如何使用参数设置 $redirectTo 路由?

Sap*_*aik 2 php laravel laravel-5.4

在我的LoginController我定义了一个自定义重定向路由是这样的:

protected $redirectTo = '/home';
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我想在用户登录时显示 toastr 通知,因此我想flash通过此重定向获取一些数据。

在我的其他控制器中,我正在做这样的事情并且效果很好

$notification = array(
                        'message' => 'User okay', 
                        'alert_type' => 'success',
                      );
return Redirect::route('user')->with('notification', $notification);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何处理 $redirectTo

请在这件事上给予我帮助

Sim*_*ino 5

传递“消息包”的一种方法是redirectTo method在 LoginController 中创建一个。

开箱即用此方法不存在,因为它是从trait RedirectsUsersso继承的,只需编写它并根据需要完成它就会在用户通过身份验证时执行(如函数名称所述)

protected function redirectTo(Request $request)
{
    $notification = array(
        'message' => 'User okay', 
        'alert_type' => 'success',
    );
    return Redirect::route($this->redirectTo)->with('notification', $notification);
}
Run Code Online (Sandbox Code Playgroud)

如您所见,trait RedirectsUsers正在寻找已定义redirectTo function或使用您定义为的变量$redirectTo

public function redirectPath()
{
    if (method_exists($this, 'redirectTo')) {
        return $this->redirectTo();
    }

    return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
}
Run Code Online (Sandbox Code Playgroud)

否则,如果您要传递的参数是一个简单的 GET 参数,您可以使用相同的经过身份验证的函数,并根据需要使用参数设置它,还有动态参数,例如

protected function redirectTo(Request $request)
{
    return redirect()->route('route.name', [param1 => value1, param2 => value2]);
}
Run Code Online (Sandbox Code Playgroud)

对于重定向目的,这比使用其他功能(如之前建议的“经过身份验证”的功能)更清楚。