laravel框架中间件简单使用方法示例


Posted in PHP onJanuary 25, 2020

本文实例讲述了laravel框架中间件简单使用方法。分享给大家供大家参考,具体如下:

laravel内置了一个中间件来验证用户是否经过认证,如果用户没有经过认证,中间件会将用户重定向到登录页面,否则如果用户经过认证,中间件就会允许请求继续往前进入下一步操作。

当然,除了认证之外,中间件还可以被用来处理更多其它任务。比如:CORS 中间件可以用于为离开站点的响应添加合适的头(跨域);日志中间件可以记录所有进入站点的请求。

Laravel框架自带了一些中间件,包括认证、CSRF 保护中间件等等。所有的中间件都位于 app/Http/Middleware目录。

中间是请求前还是请求后执行取决于中间件本身,以下中间件会在请求处理前执行一些任务

<?php
namespace App\Http\Middleware;
use Closure;
class TestMiddle
{
  public function handle($request, Closure $next)
  {
    // 执行动作
    if(!$request->session()->has('huser')){
      return redirect("login/index");
    }
    return $next($request);
  }
}

而下面这个中间件则会在请求处理后执行其任务:

<?php
namespace App\Http\Middleware;
use Closure;
class TestMiddle
{
  public function handle($request, Closure $next)
  {
    $response = $next($request);
    // 执行动作
    if(!$request->session()->has('huser')){
      return redirect("login/index");
    }
    return $response;
  }
}

中间件可以自己在编辑器里面新建对应类生成,也可用命令生成

php artisan make:middleware TestMiddle

此时,laravel的app\Http\Middleware\目录就会多一个TestMiddle.php的中间件文件

此时中间件还不能直接使用,必须把它注册到我们的laravel中,如下

只需在 app/Http/Kernel.php 类(3个属性,对应里面加入,我有时用路由的)

'TestMiddle' => \App\Http\Middleware\TestMiddle::class,

分配中间件到路由,下面介绍三种方式

Route::get('/',function(){
  return redirect('home/index');
})->middleware('TestMiddle');
Route::group(['middleware' => ['TestMiddle']], function() {
  Route::controller("db","DataBaseController");
});
Route::controller("home","HomeController",['middleware'=>'TestMiddle']);

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

PHP 相关文章推荐
开源SNS系统-ThinkSNS
May 18 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
Jun 09 PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 PHP
PHP把MSSQL数据导入到MYSQL的方法
Dec 27 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
Mar 20 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
Apr 08 PHP
php 输出缓冲 Output Control用法实例详解
Mar 03 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 PHP
PHP的imageTtfText()函数深入详解
Mar 03 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
Jan 23 #PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 #PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
Jan 23 #PHP
php面向对象基础详解【星际争霸游戏案例】
Jan 23 #PHP
PHP数据源架构模式之表入口模式实例分析
Jan 23 #PHP
TP3.2.3框架文件上传操作实例详解
Jan 23 #PHP
php的RSA加密解密算法原理与用法分析
Jan 23 #PHP
You might like
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
用javascript编写的第一人称射击游戏
2007/02/25 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
jQuery中[attribute=value]选择器用法实例
2014/12/31 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
CSS+jQuery实现简单的折叠菜单
2016/12/20 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
Angularjs的键盘事件的绑定
2017/07/27 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
2018/01/09 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
2020/04/13 Javascript
python调用cmd复制文件代码分享
2013/12/27 Python
Python实现控制台输入密码的方法
2015/05/29 Python
Python字符串格式化的方法(两种)
2017/09/19 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
matplotlib subplots 设置总图的标题方法
2018/05/25 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
如何解决安装python3.6.1失败
2020/07/01 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
舞蹈兴趣小组活动总结
2014/07/07 职场文书
建议书格式
2015/02/04 职场文书
员工自我评价范文
2015/03/11 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python
python代码实现扫码关注公众号登录的实战
2021/11/01 Python
Python软件包安装的三种常见方法
2022/07/07 Python