Laravel5.1 框架Middleware中间件基本用法实例分析
本文实例讲述了Laravel5.1框架Middleware中间件基本用法。分享给大家供大家参考,具体如下:
中间件?什么鬼?大家第一次接触这个词都会有这么个疑问,但它其实没那么神秘。
一句话就可以解释它:过滤HTTP请求专用机制。
为什么要使用中间件?
过滤HTTP请求是可以写在别的地方,比如说控制器中路由中,BUT抽象出来就有它的理由,比如说Laravel自带的Auth中间件它要求必须是登录进来的用户才有权访问如果没有登录就跳转到登录页面,这样的逻辑在很多场景都会用到这很明显了吧你不可能在每个控制器或每一个路由都单独实现以便,直接抽出来多方便。
1使用中间件
1.1创建中间件
咱创建中间件是使用artisan控制台的:
phpartisanmake:middlewareTestMiddleware
创建好后位于:app/Http/Middleware
1.2解读中间件
首先我们来看看新创建的中间件是什么模样儿:
classTestMiddleware { /** *Handleanincomingrequest. * *@param\Illuminate\Http\Request$request *@param\Closure$next *@returnmixed */ publicfunctionhandle($request,Closure$next) { return$next($request); } }
解读:middleware中只有“handle”函数这个函数呢接受两个参数
它的流程是接受request参数取出一些东西做验证如果逻辑通过执行next闭包。
如果你还是不太懂的话没关系咱上实例
1.3编写中间件
publicfunctionhandle($request,Closure$next) { //如果传入的id参数等于0就跳转到首页。 if($request->input('id')==0){ returnredirect('/'); } //id参数不等于0则为通过进行默认的下一步操作。 return$next($request); }
完事儿后我们需要在app/Http/Kernel.php中进行注册:
/** *Theapplication'sglobalHTTPmiddlewarestack. * *@vararray */ protected$middleware=[ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, ]; /** *Theapplication'sroutemiddleware. * *@vararray */ protected$routeMiddleware=[ 'auth'=>\App\Http\Middleware\Authenticate::class, 'auth.basic'=>\Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'guest'=>\App\Http\Middleware\RedirectIfAuthenticated::class, //把我们创建的middleware注册到这里 'test'=>\App\Http\Middleware\TestMiddleware::class, ];
注意:我们可以瞧见啊Kernel中有两个数组如果你希望在全局中使用就注册在middleware数组中,如果你想要局部使用middleware那么就在routeMiddleware数组中注册。
1.4使用中间件
好了,注册完之后我们来用用吧:
Route::get('/test-middleware',['middleware'=>'test',function(){ return'HI'; }]);
当我们输入:http://localhost:8000/test-middleware?id=1时会在页面上输出HI当输入http://localhost:8000/test-middleware?id=0时会返回首页。
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。