php.laravel.middleware
关于中间件,在php-laravel中的定义就是对请求的一个过滤,相当于JSP技术中的filter的存在。需要知道编写了一个中间件可以配置在三个地方(就目前5.7版本而言)让其发挥作用,
具体需要看/app/Http/Kernal.php文件的定义。在这个文件中的Kernel类中有三个数组,数组上的注释写的已经很清楚了。
下面试着新建一个中间件,因为是测试,所以就针对单挑路由,所以配置到了$routeMiddleware这个数组中,下面记录下大致流程。代码啥的,参考laravel学院的博文。
php artisan make:middleware TestMiddleware #新建一个中间件
新建的中间件要启用,需要在/app/Http/Kernal.php中配置
下面看一下这个Kernal.php的文件:
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
//争对每一请求的中间件配置与下面的数组之中
protected $middleware = []; /**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [],
'api' => [],
]; /**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
//#######注释显示,配置在这里的中间件可以为单条路由或路由组所使用############
protected $routeMiddleware = [
//useradd
'test' => \App\Http\Middleware\TestMiddleware::class,
];
}
public function handle($request, Closure $next)
{
//对请求中的字段进行过滤,看是否满足要求,下面例子中的age参数 //可以为url路径中的参数
//http://xxx.xx/xx/xx/{age}/xx/xx #此时age是一个数值 //也可为url携带的参数
//http://xx.xx.xx?z=12&b=asdf&age=18 #此时是携带的参数 //或者如下这样,如下的请求age字段只需任意一个满足即可:
//http://asdxx.com/foo/{age}/bar?par1=val1&par2=val2&age=19 if($request->input('age')<18)
return redirect()->route('refuse');
return $next($request);
}
关于如何使用,请看laravel学院,不再重复
php.laravel.middleware的更多相关文章
- laravel middleware
当你使用larvel创建一个相对比较复杂的web网站时,往往你的routes文件就会变得很庞大.一般来说在开始网站编码之前,最好做一个整体规划,把这些route逻辑上划分为不同的group,每一个gr ...
- PHP and laravel知识点小小积累
function () use ($x, &$y){} 自从PHP5.3开始有了closure/匿名函数的概念,在这里的use关键词的作用是允许匿名函数capture到父函数scope 内存在 ...
- 手摸手教你让Laravel开发Api更得心应手
https://www.guaosi.com/2019/02/26/laravel-api-initialization-preparation/ 1. 起因 随着前后端完全分离,PHP也基本告别了v ...
- laravel框架的中间件middleware的详解
本篇文章给大家带来的内容是关于laravel框架的中间件middleware的详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. laravel中间件是个非常方便的东西,能将一些逻辑 ...
- laravel中间件-----------middleware
middleware中间件 是访问到达服务器后在被对应的路由处理之前所经过的一层过滤层,故称中间件. 中间件是存放在app\http\middleware中,需要定一个 handle 处理方法,在ha ...
- Laravel 5.1 ACL权限控制 四 之middleware
1.创建Middleware php artisan make:middleware MustBeAnAdmin 2.实现 MustBeAnAdmin.php中的handle方法,判断登录的用户是否为 ...
- 在Laravel中使用Middleware进行身份验证
新建一个中间件: 方法写在handle中 判断用户是否登录而且是否是管理员,不是的话返回到主页 新建判断是否为管理员的方法 在kernel定义一个中间件,key是admin 注册群组路由:prefix ...
- Laravel 控制器的middleware中间件
场景:活动开始前只能访问宣传页面,开始后才可以访问其他页面: 步骤: 新建中间件, 注册中间件, 使用中间件, 中间件的前置和后置操作. 控制器: public function activity0( ...
- laravel App\Kernel.php中的middleware、middlewareGroups、routeMiddleware
万事万物总逃不出一个理字,程序尤其如此,你之所以活得轻松,是因为有人替你负重前行,帮你屏蔽掉了很多乱七八糟的事情,但总有一天你要直面这些事情.程序亦是如此,某个框架你用的很轻松,那是因为底层逻辑已经有 ...
随机推荐
- PLSQL Developer常用设置及快捷键
CSDN日报20170314--<40岁程序员真的要被淘汰了么?> 程序员2月书讯 [直播]用面向协议的思想简化网络请求 博客一键搬家活动开始啦 PLSQL Developer常用设置及快 ...
- Java 5 、6、 7中新特性
JDK5新特性(与1.4相比)[转] 1 循环 for (type variable : array){ body} for (type variable : arrayList){body} 而1. ...
- JAVA 内部类 总结
内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权 ...
- java并发:interrupt进程终止
interrupt进程终止 interrupt()源码 /** * Interrupts this thread. * * <p> Unless the current thread is ...
- day15-Python运维开发基础(json序列化模块、random / time / zipfile / OS模块函数)
1. json序列化模块 # ### json """ 所有编程语言都能够识别的数据格式叫做json,是字符串 json: 将数据类型序列化成字符串 pickle:将数据 ...
- 在Java中,为什么十六进制数0xFF取反之后对应的十进制数是-256呢?
int number = 0xFF: 字面值是指在程序中无需变量保存,可直接表示为一个具体的数字或字符串的值. 0xFF是一个整数字面值,整数字面值的缺省类型是 int. 我们知道在Java中, in ...
- 1-7SpringBoot之表单验证@Valid
SpringBoot提供了强大的表单验证功能实现,给我们省去了写验证的麻烦: 这里我们给下实例,提交一个有姓名和年龄的表单添加功能, 要求姓名不能为空,年龄必须是不小于18 : 我们先新建一个Stud ...
- myeclipse中svn图标状态不显示问题的解决办法
myeclipse中svn图标状态不显示问题的解决办法 博客分类: svn SVNMyeclipse工作WindowsC myeclipse中使用 svn 插件,原本正常,未作任何更改,突然有一天, ...
- 闲谈“如何优化SSH框架的项目”
使用struts框架的好处之一就是所有action类继承一个基类,将访问控制在基类中处理.2.所有的action类都继承自baseaction,一个资源对应一个action类.1.实现一个继承自str ...
- bootstrap修改数据刷新页面跳转到当前页的问题
修改按钮的页面的方法里添加如下代码 1 var pn = $("#datatable").bootstrapTable('getOptions').pageNumber; ...