10、Controller之middleware

路由中间件:达到某些要求就可以访问这个页面,达不到要求访问那个页面

一、编写控制器

public function middle1(){
    return '尚未达到要求';
}
public function middle2(){
    return '已达到要求,访问中';
}

二、新建中间件,在 app / Http / Middleware 下,新建 Huodong.php

<?php
namespace App\Http\Middleware; //命名空间
use Closure;

class Huodong{
    public function handle($request,Closure $next){ 
        //写要求
        if(time() < strtotime('2020-6-26')){
            return redirect('middle1');
        }
        return $next($request);
    }
}

三、注册中间件,app / Http / Kernel.php ,路由中间件在  protected $routeMiddleware 里面添加

'huodong' => \App\Http\Middleware\Huodong::class,
//中间件名字  ,中间件页面位置 ::class

四、编写路由

//不需要条件,可做宣传页
Route::get('/middle1','XxxController@middle1');

//条件到达可访问,可做活动页,里面可以设置多个路由
Route::group(['middleware' => ['huodong']],function(){
                         //注册中间件时的名字

    Route::get('/middle2','XxxController@middle2');
});

辨别 前置 / 后置 中间件,在写中间件页面时判断 $next($request) 的先后顺序

<?php
namespace App\Http\Middleware; //命名空间
use Closure;

class Huodong{
    public function handle($request,Closure $next){ 

        if(time() < strtotime('2020-6-26')){
            return redirect('middle1');
        }

        return $next($request); //这是前置中间件
        //在这个请求之前操作,前置中间件
        //在这个请求之后操作,后置中间件
    }
}

猜你喜欢

转载自www.cnblogs.com/mingliangge/p/13179475.html