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 相关文章推荐
判“新”函数:得到今天与明天的秒数
Oct 09 PHP
PHP mkdir()定义和用法
Jan 14 PHP
PHP5函数小全(分享)
Jun 06 PHP
php格式输出文件var_export函数实例
Nov 15 PHP
php实现的通用图片处理类
Mar 24 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
PHP函数积累总结
Mar 19 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
Jun 13 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
Sep 26 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 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生成扭曲及旋转的验证码图片
2013/06/07 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
JS 图片缩放效果代码
2010/06/09 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
javascript实现计算器功能
2020/03/30 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
tensorflow实现KNN识别MNIST
2018/03/12 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
金鑫耀Java笔试题
2014/09/06 面试题
自动化专业个人求职信范文
2013/11/29 职场文书
开水果连锁店创业计划书
2013/12/29 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
镇党政领导班子民主生活会思想汇报
2014/10/11 职场文书
考研导师推荐信范文
2015/03/27 职场文书
初中语文教师研修日志
2015/11/13 职场文书
Python 多线程之threading 模块的使用
2021/04/14 Python
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis