Laravel 中间件的使用
Posted 小白兔晒黑了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel 中间件的使用相关的知识,希望对你有一定的参考价值。
中间件的作用:
过滤进入应用程序的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 中间件的使用的主要内容,如果未能解决你的问题,请参考以下文章