Laravel框架控制器的middleware中间件用法分析
吾爱主题
阅读:161
2021-08-24 16:04:00
评论:0
本文实例讲述了Laravel框架控制器的middleware中间件用法。分享给大家供大家参考,具体如下:
场景:活动开始前只能访问宣传页面,开始后才可以访问其他页面:
步骤:
新建中间件,
注册中间件,
使用中间件,
中间件的前置和后置操作。
控制器:
?1 2 3 4 5 6 7 8 9 | public function activity0(){ return '活动快要开始啦,敬请期待' ; } public function activity1(){ return '活动页面1' ; } public function activity2(){ return '活动页面2' ; } |
路由:
?1 2 3 | Route::any( 'activity0' ,[ 'uses' => 'StudentController@activity0' ]); Route::any( 'activity1' ,[ 'uses' => 'StudentController@activity1' ]); Route::any( 'activity2' ,[ 'uses' => 'StudentController@activity2' ]); |
在App\Http\Middleware下创建中间件Activity.php:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 | namespace App\Http\Middleware; use Closure; class Activity{ public function handle( $request ,Closure $next ){ if (time() < strtotime ( '2018-01-01' )){ return redirect( 'activity0' ); } return $next ( $request ); } } //注册中间件,在Kernel.php中的$routeMiddleware数组中增加 protected $routeMiddleware = [ 'activity' => \App\Http\Middleware\Activity:: class , ]; |
使用中间件,路由中的设置
?1 2 3 4 5 6 | //宣传页面不需要中间件验证,不能放里边 Route::any( 'activity0' ,[ 'uses' => 'StudentController@activity0' ]); Route::group([ 'middleware' =>[ 'activity' ]], function (){ Route::any( 'activity1' ,[ 'uses' => 'StudentController@activity1' ]); Route::any( 'activity2' ,[ 'uses' => 'StudentController@activity2' ]); }); |
1 2 3 4 5 6 | //后置中间件 public function handle( $request ,Closure $next ){ $response = $next ( $request ); echo $response ; echo '我是后置操作' ; } |
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/gyfluck/p/9041407.html
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。