路由中间件之 ShareErrorsFromSession

未匹配的标注

简介

[
    'App\Http\Middleware\EncryptCookies',
    'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
    'Illuminate\Session\Middleware\StartSession',
    'Illuminate\View\Middleware\ShareErrorsFromSession',  // 本章内容
    'App\Http\Middleware\VerifyCsrfToken',
    'Illuminate\Routing\Middleware\SubstituteBindings',
    'App\Http\Middleware\RedirectIfAuthenticated',
]

上一章,我们看了 StartSession 中间件源码,总结其大体作用:从 Cookie 中获取 SessionID,然后从 Laravel Storage 中获取序列化的会话信息;生成 Response SessionID,加入 Cookie 中返回给前端,最后将会话序列化保存到 Laravel Storage 中。

本章,如上:ShareErrorsFromSession。

从字面意思,可以看出是指从 Session 中分享错误信息至 View 视图中。

handle 方法

Illuminate\View\Middleware\ShareErrorsFromSession

public function handle($request, Closure $next)
{
    // 从 session 中获取错误信息,绑定到 view 视图中
    $this->view->share(
        'errors', $request->session()->get('errors') ?: new ViewErrorBag
    );

    return $next($request);
}

在讲这个中间件之前。我们来看一段官方文档

Laravel

此段地址--->传送门

然而,官方文档提到的将错误信息闪存到 Session 中,然后供 视图 使用,其中从 Session 中取错误数据的功能,就是此中间件负责的事情。

本篇如有错误、不当或者需补充的内容,请各位同僚多提宝贵意见。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~