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 mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
PHP下对字符串的递增运算代码
Aug 21 PHP
PHP中for与foreach的区别分析
Mar 09 PHP
使用php shell命令合并图片的代码
Jun 23 PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 PHP
JS异常处理try..catch语句的作用和实例
May 05 PHP
PHP封装分页函数实现文本分页和数字分页
Oct 23 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
Jan 04 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
Mar 18 PHP
PHP学习笔记之php文件操作
Jun 03 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
Oct 14 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批量上传的实现代码
2013/06/09 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
PHP实现懒加载的方法
2015/03/07 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
原生js实现随机点名功能
2019/11/05 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
python基础教程之数字处理(math)模块详解
2014/03/25 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
小学班主任经验交流材料
2014/12/16 职场文书
优秀团队申报材料
2014/12/26 职场文书
清洁工个人工作总结
2015/03/05 职场文书