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 相关文章推荐
smarty+adodb+部分自定义类的php开发模式
Dec 31 PHP
CodeIgniter使用phpcms模板引擎
Nov 12 PHP
保存到桌面、设为桌面且带图标的PHP代码
Nov 19 PHP
php多任务程序实例解析
Jul 19 PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 PHP
php从字符串创建函数的方法
Mar 16 PHP
php简单实现无限分类树形列表的方法
Mar 27 PHP
php中二维数组排序问题方法详解
Aug 28 PHP
PHP设置Cookie的HTTPONLY属性方法
Feb 09 PHP
php实现PDO中捕获SQL语句错误的方法
Feb 16 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
Aug 02 PHP
PHP实现通过文本文件统计页面访问量功能示例
Feb 13 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_pdo 预处理语句详解
2016/11/21 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
js脚本实现数据去重
2014/11/27 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
JS经典正则表达式笔试题汇总
2016/12/15 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
js验证身份证号码记录的方法
2019/04/26 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
vue组件是如何解析及渲染的?
2021/01/13 Vue.js
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
铭立家具面试题
2012/12/06 面试题
家长对小学生的评语
2014/01/28 职场文书
运动会通讯稿100字
2014/01/31 职场文书
农村改厕实施方案
2014/03/22 职场文书
机械机修工岗位职责
2014/08/03 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
新年晚会开场白
2015/05/29 职场文书
小型婚礼主持词
2015/06/30 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书
员工给公司的建议书
2019/06/24 职场文书
vue中 this.$set的使用详解
2021/11/17 Vue.js
python装饰器代码解析
2022/03/23 Python