• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Laravel5.1 框架Middleware中间件基本用法实例分析

    本文实例讲述了Laravel5.1 框架Middleware中间件基本用法。分享给大家供大家参考,具体如下:

    中间件?什么鬼? 大家第一次接触这个词都会有这么个疑问,但它其实没那么神秘。

    一句话就可以解释它:过滤HTTP请求专用机制。

    为什么要使用中间件?

    过滤HTTP请求是可以写在别的地方,比如说控制器中 路由中,BUT 抽象出来就有它的理由,比如说Laravel自带的Auth中间件 它要求必须是登录进来的用户才有权访问 如果没有登录就跳转到登录页面,这样的逻辑在很多场景都会用到 这很明显了吧 你不可能在每个控制器或每一个路由都单独实现以便,直接抽出来多方便。

    1 使用中间件

    1.1 创建中间件

    咱创建中间件是使用artisan控制台的:

    php artisan make:middleware TestMiddleware
    
    

    创建好后位于:app/Http/Middleware

    1.2 解读中间件

    首先我们来看看新创建的中间件是什么模样儿:

    class TestMiddleware
    {
      /**
       * Handle an incoming request.
       *
       * @param \Illuminate\Http\Request $request
       * @param \Closure $next
       * @return mixed
       */
      public function handle($request, Closure $next)
      {
        return $next($request);
      }
    }
    
    

    解读:middleware中只有 “handle”函数 这个函数呢接受两个参数

    它的流程是接受request参数 取出一些东西做验证 如果逻辑通过 执行next闭包。

    如果你还是不太懂的话 没关系 咱上实例

    1.3 编写中间件

      public function handle($request, Closure $next)
      {
        // 如果传入的id参数等于0 就跳转到首页。
        if ($request->input('id') == 0){
          return redirect('/');
        }
        // id参数不等于0 则为通过 进行默认的下一步操作。
        return $next($request);
      }
    
    

    完事儿后我们需要在 app/Http/Kernel.php 中进行注册:

      /**
       * The application's global HTTP middleware stack.
       *
       * @var array
       */
      protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
      ];
      /**
       * The application's route middleware.
       *
       * @var array
       */
      protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        // 把我们创建的middleware注册到这里
        'test' => \App\Http\Middleware\TestMiddleware::class,
      ];
    
    

    注意:我们可以瞧见啊 Kernel 中有两个数组 如果你希望在全局中使用 就注册在middleware数组中,如果你想要局部使用middleware 那么就在routeMiddleware数组中注册。

    1.4 使用中间件

    好了,注册完之后我们来用用吧:

    Route::get('/test-middleware',['middleware'=>'test',function(){
      return 'HI';
    }]);
    
    

    当我们输入:http://localhost:8000/test-middleware?id=1 时会在页面上输出HI 当输入 http://localhost:8000/test-middleware?id=0 时会返回首页。

    更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • Laravel中间件实现原理详解
    • Laravel框架实现利用中间件进行操作日志记录功能
    • Laravel的throttle中间件失效问题解决方法
    • Laravel获取当前请求的控制器和方法以及中间件的例子
    • laravel框架中间件 except 和 only 的用法示例
    • Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
    • 浅谈Laravel中的三种中间件的作用
    • Laravel5.1框架注册中间件的三种场景详解
    • laravel利用中间件防止未登录用户直接访问后台的方法
    • laravel利用中间件做防非法登录和权限控制示例
    • 基于Laravel 多个中间件的执行顺序详解
    • laravel框架中间件简单使用方法示例
    上一篇:Laravel 5.1 框架Blade模板引擎用法实例分析
    下一篇:Laravel5.1 框架Request请求操作常见用法实例分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    Laravel5.1 框架Middleware中间件基本用法实例分析 Laravel5.1,框架,Middleware,中间件,