Laravel 5 withError()vs withErrors()

时间:2017-08-31 14:35:20

标签: php laravel-5.4

我可能会做一些非常愚蠢的事情。意外地产生了一段代码,我似乎无法弄清楚它是如何工作的。

我正在尝试将未经身份验证的用户重定向自定义为登录页面。因此,当用户尝试访问受保护的页面时,laravel会将用户重定向到登录页面。我试图在这种情况下显示Javascript toastr消息。

我所做的是在unauthenticated课程中自定义App\Exceptions\Handler.php方法,如下所示:

protected function unauthenticated($request, AuthenticationException $exception)
{
    if ($request->expectsJson()) {
        return response()->json(['error' => 'Unauthenticated.'], 401);
    }
    //dd($request);
    return redirect()->guest('login')->withError('You are not logged in or Your session has expired');
}

请注意,我错过了s功能中的withError。在我的刀片文件中,我显示的是toastr通知,如下所示:

<script>
 @if(Session::has('error'))

       toastr.error("{{Session::get('error')}}");
 @endif
 </script>

因此,每当用户因未登录而被重定向到登录页面时,都会显示Java Script toastr消息。但是,我无法弄清楚Session('error')函数如何填充withError值。我只能发现Laravel有withErrors功能,而不是withError

试图在没有运气的情况下排除最后几个小时的故障。在这里寻求一些指导。谢谢。顺便说一句,我对Laravel来说很新。

1 个答案:

答案 0 :(得分:4)

这是一种“神奇”方法,因为对call方法前缀的任何调用都将作为闪存数据添加到会话中。因此withError()会在密钥error下添加Flash数据; withErrors()会在密钥errors下添加Flash数据; withSuccess()会在success的密钥下添加Flash数据;等等。