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 date与gmdate的获取日期的区别
Feb 08 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
Jan 24 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
php cookie名使用点号(句号)会被转换
Oct 23 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
PHP Callable强制指定回调类型的方法
Aug 30 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
Nov 20 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
PHP单例模式数据库连接类与页面静态化实现方法
Mar 20 PHP
Smarty模板语法详解
Jul 20 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切割页面div内容的实现代码分享
2012/07/31 PHP
Thinkphp 中 distinct 的用法解析
2016/12/14 PHP
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
深入认识javascript中的eval函数
2009/11/02 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
javascript操作cookie
2017/01/17 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
原生JS实现天气预报
2020/06/16 Javascript
python中zip和unzip数据的方法
2015/05/27 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
python写一个随机点名软件的实例
2019/11/28 Python
Python命令行click参数用法解析
2019/12/19 Python
Python类反射机制使用实例解析
2019/12/30 Python
Django实现celery定时任务过程解析
2020/04/21 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
python入门教程之基本算术运算符
2020/11/13 Python
汽车专业毕业生自荐信
2013/11/03 职场文书
上班早退检讨书
2014/01/09 职场文书
财务会计大学生自我评价
2014/04/09 职场文书
房地产广告策划方案
2014/05/15 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
股东出资证明书范例
2014/10/04 职场文书
乡镇党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2014流动人口计划生育工作总结
2014/12/20 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
大学生党课心得体会
2016/01/07 职场文书
创业计划书之养殖业
2019/10/11 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python
教你怎么用Python操作MySql数据库
2021/05/31 Python