laravel中间件

    xiaoxiao2021-03-25  55

    命令 php artisan make:middleware

    中间件的定义:

    1)命名空间的定义

    2)可以继承中间件

    3)excpet字段 可以定义一些规则,比如密码不去除前后空格。

    handle()做中间件的处理逻辑

    handle(请求对象,下一个请求对象,)

    使用中间件:1定义 app/middleware   

                            2.注册 app/kernel.php

    日志文件位置:storage/logs/laravel.log

    <?php namespace App\Http\Middleware; use Closure; use Log; use DB; class myMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { //继续执行之前拦截 Log::info('url ='.$request->path()); //开启查询日志 DB::enableQueryLog(); //继续执行当前请求 $response = $next($request); dump(DB::getQueryLog());//必须开启查询日志以后才能用 return $response; } /* 结束请求时,会自动调用该方法 */ public function terminate() { dd(DB::getQueryLog()); } } 1)全局中间件

    <?php namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel { /** * The application's global HTTP middleware stack. * * These middleware are run during every request to your application. * * @var array */ protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, \App\Http\Middleware\myMiddleware::class, ];2)别名中间件

    3)路由注册:路由文件中使用中间件

    定义路由加后缀 Route::get('/test',['middleware'=>'my',//中间件名称

    'users'=>'IndexController@test//

    'as'=>'test_router',//路由名称

    ']) ;

    4)控制器中使用中间件:在类的构造方法中使用中间件

    课程结束自己需要了解的东西:

    1.如何在laravel框架中使用第三方库

    2.编写自己的库(如在laravel中实现支付宝接口)

    3.底层概念的深刻理解

    转载请注明原文地址: https://ju.6miu.com/read-38663.html

    最新回复(0)