10Controller之middleware
Posted mingliangge
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10Controller之middleware相关的知识,希望对你有一定的参考价值。
路由中间件:达到某些要求就可以访问这个页面,达不到要求访问那个页面
一、编写控制器
public function middle1(){ return ‘尚未达到要求‘; } public function middle2(){ return ‘已达到要求,访问中‘; }
二、新建中间件,在 app / Http / Middleware 下,新建 Huodong.php
<?php namespace AppHttpMiddleware; //命名空间 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‘ => AppHttpMiddlewareHuodong::class, //中间件名字 ,中间件页面位置 ::class
四、编写路由
//不需要条件,可做宣传页 Route::get(‘/middle1‘,‘XxxController@middle1‘); //条件到达可访问,可做活动页,里面可以设置多个路由 Route::group([‘middleware‘ => [‘huodong‘]],function(){ //注册中间件时的名字 Route::get(‘/middle2‘,‘XxxController@middle2‘); });
辨别 前置 / 后置 中间件,在写中间件页面时判断 $next($request) 的先后顺序
<?php namespace AppHttpMiddleware; //命名空间 use Closure; class Huodong{ public function handle($request,Closure $next){ if(time() < strtotime(‘2020-6-26‘)){ return redirect(‘middle1‘); } return $next($request); //这是前置中间件 //在这个请求之前操作,前置中间件 //在这个请求之后操作,后置中间件 } }
以上是关于10Controller之middleware的主要内容,如果未能解决你的问题,请参考以下文章
自动挡换手动挡:在 ASP.NET Core 3.0 Middleware 中手动执行 Controller Action