路由中间件之 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 网站上。

上一篇 下一篇
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~