本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
在一些网站进行上传时,当单击了浏览按钮之后会弹出【选择文件】的对话框。想要...
input输入框中的光标大小显示不一致 ie7中和chrome的非常明显 先看看问题产生的...
一、UserAction中获取到的ArrayList对象填充到UserForm中,jsp页面获取UserForm...
3月11日消息 今天,微软面向 Dev 预览通道发布了 Windows 10 Insider build 2133...
有时我们需要在一个页面上使用多个Fck的实例,首先需要按照id获取fck的实例。例...
前言 经过深思熟路后本渣决定参加放弃研发转投产品了。 本科硕士所学的东西也不...
一、Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候...
作者?| ?阿里文娱技术专家 草薰 责编 | 夕颜 出品 | CSDNID:CSDNnews 背景 近年...
下面给大家介绍下小程序弹窗禁止页面滚动的效果: 在小程序弹窗时,外部页面 禁...
在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环...