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 相关文章推荐
PHP4在Windows2000下的安装
Oct 09 PHP
PHP与javascript的两种交互方式
Oct 09 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 PHP
php二维数组排序方法(array_multisort usort)
Dec 25 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
Jul 15 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
php中heredoc与nowdoc介绍
Dec 25 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 PHP
PHP实现限制IP访问的方法
Apr 20 PHP
利用php操作memcache缓存的基础方法示例
Aug 02 PHP
PHP简单验证码功能机制实例详解
Mar 27 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代码收集表单内容并写入文件的代码
2012/01/29 PHP
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
PHP四大安全策略
2014/03/12 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
php实现购物车功能(下)
2016/01/05 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
vue移动端路由切换实例分析
2018/05/14 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
python 中if else 语句的作用及示例代码
2018/03/05 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
Python创建临时文件和文件夹
2020/08/05 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
委托证明的格式
2014/01/10 职场文书
创业计划书撰写原则
2014/01/25 职场文书
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
酒店端午节活动方案
2014/08/26 职场文书
先进工作者申报材料
2014/12/23 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书