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 相关文章推荐
PHP基于数组实现的分页函数实例
Aug 20 PHP
Yii配置文件用法详解
Dec 04 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
php上传文件常见问题总结
Feb 03 PHP
php支付宝手机网页支付类实例
Mar 04 PHP
PHP创建PowerPoint2007文档的方法
Dec 10 PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 PHP
PHP实现可自定义样式的分页类
Mar 29 PHP
Adnroid 微信内置浏览器清除缓存
Jul 11 PHP
PHP编写daemon process 实例详解
Nov 13 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
Apr 26 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 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进行MySQL删除记录操作代码
2008/06/07 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
PHP页面中文乱码分析
2013/10/29 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
小程序图片长按识别功能的实现方法
2018/08/30 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
Python中一个for循环循环多个变量的示例
2019/07/16 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
小学作文评语大全
2014/04/21 职场文书
2015年医德考评自我评价
2015/03/03 职场文书