«

laravel中间件怎么自定义

时间:2024-3-28 09:13     作者:韩俊     分类: PHP


今天小编给大家分享一下laravel中间件怎么自定义的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

什么是中间件

中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制。例如,Laravel 内置了一个中 间件来验证用户是否经过认证(如登录),如果用户没有经过认证,则中间件会将用户重定 向到登录页面;而如果用户已经经过认证,则中间件会允许请求继续往前进入下一步操作。 除了认证功能,中间件还可以被用来处理许多其他任务。比如,

CORS 中间件可以为离开站 点的相应添加合适的头(跨域);日志中间件可以记录所有进入站点的请求
,从而方便我们 构建系统日志系统。

Lavarel 自带了一些中间件,包括认证、CSRF 保护中间件等。所有的中间件都位于 appHttpMiddleware 目录下。

一、自定义中间件

步骤:

  1. 使用 artisan 命令创建中间件

    php artisan make:middleware 中间件名

  2. 在创建的中间件中编写逻辑

  3. 在 appHttp 文件夹中的配置文件 Kernel.php 中注册中间件

  4. 将中间件分配给路由或控制器

  5. 二、举个例子

    比如游乐园某些项目需要12岁或者身高超过1米4可以玩。

    我们创建一个检验年龄的中间件

    php artisan make:middleware CheckAge

    Closure 是一个闭包函数
    $request用来接收应用的请求数组
    $next 将请求传递给应用程序
    $next($request) 将请求传递给应用程序

     public function handle(Request $request, Closure $next)
        {
            if($request->age < 12){
                dd("你的年龄不符合要求") ;
            }
    
            return $next($request);
        }

    注册中间件

    打开 appHttp 文件夹中的配置文件 Kernel.php

    $middleware 配置全局中间件,所有http请求都需要经过我们定义好的中间件。
    $middlewareGroups中间件组
    $routeMiddleware 定义别名

    'age' => AppHttpMiddlewareCheckAge::class

    打开web.php创建一个路由

    //中间件Route::get('middleware/{age}',function () {
        return "你的年龄符合要求";})->middleware('age');

标签: php php教程

热门推荐