码迷,mamicode.com
首页 > 其他好文 > 详细

Laravel 中间件的使用

时间:2020-07-16 18:34:15      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:loading   route   and   group   str   ret   request   @param   ons   

中间件的作用:

过滤进入应用程序的http请求。

比如,有一个活动,在活动开始前进入活动页则跳转到宣传页

使用步骤:

1 创建中间件 \app\Http\Middleware\Activity.php

php artisan make:middleware Activity
<?php

namespace App\Http\Middleware;

use Closure;

class Activity
{
    /**
     * Handle an incoming request.
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */

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

        if(time() < strtotime(‘2020-08-06‘)){
            return redirect(‘activity0‘);
        }
        return $next($request);
    }
}

2 控制器方法 \app\Http\Controllers\StudentController.php

    public function activity0()
    {
        return ‘活动快要开始了‘;
    }

    public function activity1()
    {
        return ‘活动进行中,感谢你的参与1‘;
    }
    public function activity2()
    {
        return ‘活动进行中,感谢你的参与2‘;
    }

3 设置路由 \routes\web.php

//宣传页面
Route::any(‘activity0‘,[‘uses‘=>‘StudentController@activity0‘]);

//活动页面:
Route::group([‘middleware‘=>[‘activity‘]],function (){
    Route::any(‘activity1‘,[‘uses‘=>‘StudentController@activity1‘]);
    Route::any(‘activity2‘,[‘uses‘=>‘StudentController@activity2‘]);
});

4 注册路由 \app\Http\Kernel.php

    protected $routeMiddleware = [
       。。。。。
        ‘activity‘ => \App\Http\Middleware\Activity::class,
    ];

 前置操作与后置操作

    public function handle($request,Closure $next)
    {
        echo ‘【我是前置操作】‘;
        $response = $next($request);//$next($request)本质上就是response
        echo($response);
        echo ‘【我是后置操作】‘;
    }

技术图片

$next($request)就是response  在此之间的就是前置操作,后面的就是后置操作。。。。。

Laravel 中间件的使用

标签:loading   route   and   group   str   ret   request   @param   ons   

原文地址:https://www.cnblogs.com/polax/p/13323707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!