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的正则处理函数总结分析
Jun 20 PHP
PHP XML操作类DOMDocument
Dec 16 PHP
Session保存到数据库的php类分享
Oct 24 PHP
一个PHP的QRcode类与大家分享
Nov 13 PHP
PHP基础知识回顾
Aug 16 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
php获取数组长度的方法(有实例)
Oct 27 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
php实现字符串反转输出的方法
Mar 14 PHP
php通过sort()函数给数组排序的方法
Mar 18 PHP
php获得刚插入数据的id 的几种方法总结
May 31 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常用代码
2006/11/23 PHP
php.ini中date.timezone设置分析
2011/07/29 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
php命令行用法入门实例教程
2014/10/27 PHP
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
微信小程序使用request网络请求操作实例
2017/12/15 Javascript
Vuex提升学习篇
2018/01/11 Javascript
Python Tkinter GUI编程入门介绍
2015/03/10 Python
python threading模块操作多线程介绍
2015/04/08 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
windows下安装Python和pip终极图文教程
2017/03/05 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
python super用法及原理详解
2020/01/20 Python
通过实例解析python and和or使用方法
2020/11/14 Python
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
销售经理岗位职责
2014/03/16 职场文书
物业公司的岗位任命书
2014/06/06 职场文书
五一促销活动总结
2014/07/01 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
遗失说明具结保证书
2015/02/26 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
焦裕禄纪念馆观后感
2015/06/09 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
PyQt5实现多张图片显示并滚动
2021/06/11 Python