01-创建中间件

php think make:middleware 中间件的名称

这个指令会 application/http/middleware目录下面生成一个中间件文件。

02-注册中间件三种方式

方式1-控制器注册  pathinfo,自定义路由不适用

<?php

namespace app\index\controller;

use think\Controller;

class Middleware extends Controller
{
// 控制器的方法,要在pathinfo的情況下才可以,在自定義路由裡不適用
protected $middleware = ['CkeckLogin']; public function middle()
{
dump('----'); # code...
}
}

方式2--自定义路由 middleware

//单路由
Route::get('middle','@index/middleware/middle')->middleware('CkeckLogin'); // 路由组注册中间件
Route::group(['middleware'=>['CkeckLogin']],function(){
Route::get('middle','@index/middleware/middle');
});

方式3-配置文件注册,配置文件的所在模块的位置内的所有控制器都会调用,每个模块都可以有自己的middleware.php文件

01-配置文件middleware.php里注册多个中间件的模板引入(传参也可以在这里)

<?php

return [
// [app\http\middleware\CheckUser::class], //传单个值
// [app\http\middleware\CheckUser::class,'lili'], // 传多个值
[app\http\middleware\CheckUser::class,['name'=>'lili','age'=>234]],
[app\http\middleware\CkeckLogin::class,'lili'], ];

路由也可以传参

02-路由里也可以传参
Route::get('middle','@index/middleware/middle')->middleware('CkeckLogin','lili'); // 路由组注册中间件
Route::group(['middleware'=>['CkeckLogin']],function(){
Route::get('middle','@index/middleware/middle');
}); // 路由组注册中间件并传值1
Route::group(['prefix'=>'@index/middleware'],function(){
Route::get('middle','/middle');
})->middleware('CkeckLogin','libai'); // 路由组注册中间件并传值2
Route::group(['middleware'=>['CkeckLogin:ksksks']],function(){
Route::get('middle','@index/middleware/middle');
});

控制器里使用(取参使用)

 // $name传值
public function handle($request, \Closure $next,$data)
{
echo 'checkuser----'.$data['name'].'---'.'age='.$data['age'];
return $next($request);
}

php手记之08-tp5中间件的更多相关文章

  1. [小北De编程手记] : Lesson 08 - Selenium For C# 之 PageFactory & 团队构建

    本文想跟大家分享的是Selenium对PageObject模式的支持和自动化测试团队的构建.<Selenium For C#>系列的文章写到这里已经接近尾声了,如果之前的文章你是一篇篇的读 ...

  2. [小北De编程手记] : Selenium For C# 教程目录

    写<Selnium For C#>系列文章的初衷是因为有很多朋友问我应该从哪里开始学习自动化测试,于是就为大家写下了这个系列的文章,希望对你有些帮助吧.而我想表达的是Selenium(同时 ...

  3. [小北De编程手记] : Lesson 07 - Selenium For C# 之 窗口处理

    在实际的自动化测试过程中,我们会遇见许多需要对窗口进行处理的情况.比如,点击删除某条信息的时候系统会显示一个Alert框.或者点击某个超链接时会在浏览器中打开一个新的页面.这一篇,来和大家分享一下Se ...

  4. [小北De编程手记] : Lesson 06 - Selenium For C# 之 流程控制

    无论你是用哪一种自动化测试的驱动框架,当我们构建一个复杂应用程序的自动化测试的时候.都希望构建一个测试流程稳定,维护成本较低的自动化测试.但是,现实往往没有理想丰满.而这一篇,我会为大家讲解我们在使用 ...

  5. [小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建

    在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径.因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识. ...

  6. [小北De编程手记] : Lesson 02 - Selenium For C# 之 核心对象

    从这一篇开始,开始正式的介绍Selenium 以及相关的组件,本文的将讨论如下问题: Selenium基本的概念以及在企业化测试框架中的位置 Selenium核心对象(浏览器驱动) Web Drive ...

  7. [小北De编程手记] : Lesson 03 - Selenium For C# 之 元素定位

    无论哪一种自动化测试的驱动框架(基于B/S,桌面应用,还是手机App).都应当具有一套优秀的元素定位技术.通常的自动化测试流程也可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元 ...

  8. [小北De编程手记] : Lesson 04 - Selenium For C# 之 API 上

    这一部分,我准备向大家介绍Selenium WebDriver的常用API,学习这部分内容需要大家最好有一些简单的HTML相关知识,本文主要涉及到以下内容: Selenium API:元素检查 Sel ...

  9. [小北De编程手记] : Lesson 05 - Selenium For C# 之 API 下

    上一篇,我们介绍了一些Selenium WebDriver相关的API,下面我们就接着上一篇继续介绍Selenium常用的API,这一篇的内容主要涉及到以下话题: Selenium API:复杂事件处 ...

  10. 转:[小北De编程手记] : Selenium For C# 教程目录

    写<Selnium For C#>系列文章的初衷是因为有很多朋友问我应该从哪里开始学习自动化测试,于是就为大家写下了这个系列的文章,希望对你有些帮助吧.而我想表达的是Selenium(同时 ...

随机推荐

  1. Solr+ik分词支持特殊符号分词

    在工具类(CharacterUtil.java)里,找到方法 identifyCharType,加入以下代码: } else if (ub == Character.UnicodeBlock.GREE ...

  2. MySQL Binlog--PURGE MASTER LOGS失败

    问题背景: 在我们磁盘空间维护策略中,BINLOG的默认保留期限为7天,但当磁盘空间不足时,会根据磁盘空间使用率自动清理超过一定数量的BINLOG. 问题原因: 某服务器上报磁盘空间不足,登录服务器发 ...

  3. MySQL数据库机房裁撤问题总结

    背景:公司某一机房需要裁撤,涉及到大量DB服务器,需要在裁撤截止日期以前完成业务的平滑迁移和设备退还工作. 历时2个多月,经历了设备梳理.裁撤资源评估.裁撤资源申请.裁撤DB部署.裁撤DB业务关系梳理 ...

  4. 根据byte数组,生成文件

    /** * 根据byte数组,生成文件 * filePath 文件路径 * fileName 文件名称(需要带后缀,如*.jpg.*.java.*.xml) */ public static void ...

  5. vscode 上安装 leetcode插件

    vscode 真是一款非常好的轻量级的代码编辑工具,无论windows还是ubuntu使用体验都非常好. leetcode用来练练脑子吧,不要老年痴呆了. 1. 安装vscode Ubuntu先去下载 ...

  6. 0029redis单机版环境搭建

    linux环境下安装单机版redis,主要分为如下几步: 1. 安装gcc 2.下载安装包 3.解压安装包 4.进入解压目录并执行make和make install命令 5.查看默认安装目录 6.更改 ...

  7. only_full_group_by

    ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregate ...

  8. centos 环境下安装maven

    安装Maven Maven的下载地址:http://maven.apache.org/download.cgi这里以最新的3.2.3版本为例进行安装,在这之前需要确保机器上已经安装了JDK. 首先下载 ...

  9. yii2原生sql

    先创建连接对象 $connection = new \yii\db\Connection([ 'dsn' => $dsn, 'username' => $username, 'passwo ...

  10. emacs源码安装

    1.源码下载地址=>下载 选择下载的版本,我下的是emacs-26.1.tar.xz 版本 2.解压 xz -d emacs-26.1.tar.xz # 解压成tar文件 tar -xvf em ...