php - Laravel 5 withError() 与 withErrors()

标签 php laravel-5.4

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

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

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

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');
}

请注意,我错过了 withError 函数中的 s。在我的 Blade 文件中,我显示了 toastr 通知,如下所示:

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

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

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

过去几个小时尝试排除故障,但没有成功。在这里寻求一些指导。谢谢。顺便说一句,我是 Laravel 的新手。

最佳答案

这是一个“神奇”的方法,因为任何对带有 with 前缀的方法的调用都将作为闪存数据添加到 session 中。所以 withError() 将在键 error 下添加 flash 数据; withErrors() 将在键errors 下添加闪存数据; withSuccess()会在success键下添加flash数据;等等。

关于php - Laravel 5 withError() 与 withErrors(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45984084/

相关文章:

php - preg_replace : bad regex == 'Unknown Modifier' ?

php - 我可以使用 GET 方法中的变量来获取 mysql 数据吗?

php - Laravel 价格过滤器

php - 将 Laravel 5.4 Markdown 模板保存到数据库并从中检索

php - Pusher在生产服务器上不起作用-Laravel Broadcasting

php - Laravel - 删除 SQL 数据库中的重复行

php - 使用ajax将字段提交到数据库

php - 视频加载后更改页面背景

php - 在 PHP 中的 3 个元素后面添加 HTML 类

php - 在 Laravel 生产中完全禁用错误报告?