中间件的处理

  • 应用下的全局中间件定义

middleware.php

namespace app\api\middleware;

class Auth
{
    public function handle($request,\Closure $next)
    {
        $request->type = '处理好的逻辑';
        return $next($request);
    }
    public  function end(\think\Response $response)
    {
        dump('请求结束后的处理');
    }
}

把自定义的中间件注册到当前应用的middleware里面,这个文件是复制的全局下面那个文件

// 全局中间件定义文件
return [
    // 全局请求缓存
    // \think\middleware\CheckRequestCache::class,
    // 多语言加载
    // \think\middleware\LoadLangPack::class,
    // Session初始化
    // \think\middleware\SessionInit::class
    app\api\middleware\Auth::class,
];

  • 给路由指定特殊的中间件 如果没有指定的话就是默认使用应用下面的全局中间件

先定义一个Userk 中间件和上面定全局的一样

在路由上绑定给中间件(在路由中绑定了就不要在全局的middleware文件中在去注册 ,路由绑定的中间件会自动复盖应用全局的中间件)

Route::rule('user','index/user','GET')->middleware(app\api\middleware\User::class);

posted @ 2020-03-06 14:25  战胜自已  阅读(159)  评论(0)    收藏  举报