Laravel框架控制器的middleware中间件用法分析


Posted in PHP onSeptember 30, 2019

本文实例讲述了Laravel框架控制器的middleware中间件用法。分享给大家供大家参考,具体如下:

场景:活动开始前只能访问宣传页面,开始后才可以访问其他页面:

步骤:

新建中间件,

注册中间件,

使用中间件,

中间件的前置和后置操作。

控制器:

public function activity0(){
  return '活动快要开始啦,敬请期待';
}
public function activity1(){
  return '活动页面1';
}
public function activity2(){
  return '活动页面2';
}

路由:

Route::any('activity0',['uses'=>'StudentController@activity0']);
Route::any('activity1',['uses'=>'StudentController@activity1']);
Route::any('activity2',['uses'=>'StudentController@activity2']);

App\Http\Middleware下创建中间件Activity.php:

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,
];

使用中间件,路由中的设置

//宣传页面不需要中间件验证,不能放里边
Route::any('activity0',['uses'=>'StudentController@activity0']);
Route::group(['middleware'=>['activity']],function(){
  Route::any('activity1',['uses'=>'StudentController@activity1']);
  Route::any('activity2',['uses'=>'StudentController@activity2']);
});
//后置中间件
public function handle($request,Closure $next){
  $response = $next($request);
  echo $response;
  echo '我是后置操作';
}

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP+DBM的同学录程序(4)
Oct 09 PHP
PHP随机字符串生成代码(包括大小写字母)
Jun 24 PHP
深入分析PHP引用(&amp;)
Sep 04 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
Dec 01 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
浅谈PHP中foreach/in_array的使用
Nov 02 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 PHP
php查看一个变量的占用内存的实例代码
Mar 29 PHP
PHP中->和=>的意思
Mar 31 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 #PHP
laravel实现登录时监听事件,添加登录用户的记录方法
Sep 30 #PHP
php7下的filesize函数
Sep 30 #PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 #PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
Sep 30 #PHP
Laravel框架表单验证操作实例分析
Sep 30 #PHP
Laravel 自带的Auth验证登录方法
Sep 30 #PHP
You might like
php循环输出数据库内容的代码
2008/05/24 PHP
php将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
php利用array_search与array_column实现二维数组查找
2019/07/08 PHP
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
JS限制输入框输入的实现代码
2018/07/02 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
node 版本切换的实现
2020/02/02 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
联强国际笔试题面试题
2013/07/10 面试题
产品包装策划方案
2014/05/18 职场文书
工作证明范本(2篇)
2014/09/14 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
Redis RDB技术底层原理详解
2021/09/04 Redis
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript