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读取超大文件的实例代码
Apr 01 PHP
zend framework配置操作数据库实例分析
Dec 06 PHP
php调用google接口生成二维码示例
Apr 28 PHP
CI框架中site_url()和base_url()的区别
Jan 07 PHP
php使用parse_url和parse_str解析URL
Feb 22 PHP
Yii中CGridView实现批量删除的方法
Dec 28 PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 PHP
PHP中使用foreach()遍历二维数组的简单实例
Jun 13 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 PHP
php中curl和soap方式请求服务超时问题的解决
Jun 11 PHP
PHP实现一个轻量级容器的方法
Jan 28 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中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
2014/10/20 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
php使用curl打开https网站的方法
2015/06/17 PHP
PHP中串行化用法示例
2016/11/16 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
用jquery来定位
2007/02/20 Javascript
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
jQuery回车实现登录简单实现
2013/08/20 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
webpack入门必知必会
2017/01/16 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
Python常用模块介绍
2014/11/21 Python
Python微信库:itchat的用法详解
2017/08/14 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
图书室管理制度
2014/01/19 职场文书
关于赌博的检讨书
2014/01/24 职场文书
粗加工管理制度
2014/02/04 职场文书
公司户外活动总结
2014/07/04 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
2015年安康杯竞赛活动总结
2015/03/26 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书