本文实例讲述了laravel5.1 框架middleware中间件基本用法。分享给大家供大家参考,具体如下:
中间件?什么鬼? 大家第一次接触这个词都会有这么个疑问,但它其实没那么神秘。
一句话就可以解释它:过滤http请求专用机制。
过滤http请求是可以写在别的地方,比如说控制器中 路由中,but 抽象出来就有它的理由,比如说laravel自带的auth中间件 它要求必须是登录进来的用户才有权访问 如果没有登录就跳转到登录页面,这样的逻辑在很多场景都会用到 这很明显了吧 你不可能在每个控制器或每一个路由都单独实现以便,直接抽出来多方便。
咱创建中间件是使用artisan控制台的:
php artisan make:middleware testmiddleware
创建好后位于:app/http/middleware
首先我们来看看新创建的中间件是什么模样儿:
class testmiddleware{ /** * handle an incoming request. * * @param \illuminate\http\request $request * @param \closure $next * @return mixed */ public function handle($request, closure $next) { return $next($request); }}
解读:middleware中只有 “handle”函数 这个函数呢接受两个参数
它的流程是接受request参数 取出一些东西做验证 如果逻辑通过 执行next闭包。
如果你还是不太懂的话 没关系 咱上实例
public function handle($request, closure $next) { // 如果传入的id参数等于0 就跳转到首页。 if ($request->input('id') == 0){ return redirect('/'); } // id参数不等于0 则为通过 进行默认的下一步操作。 return $next($request); }
完事儿后我们需要在 app/http/kernel.php 中进行注册:
/** *台灯用英语怎么说 the application's global http sin2amiddleware stack. * * @var array */ protected $middleware = [ \illuminate\foundation\http\middleware\checkformaintenancemode::class, \app\http\middleware\encryptcookies::class, \illuminate\cookie\middleware\addqueuedcookiestorespon::class, \illuminate\ssion\middleware\star军少的野蛮小娇妻tssion::class, \illuminate\view\middleware\shareerrorsfromssion::class, \app\http\middleware\verif匀速直线运动ycsrftoken::class, ]; /** * the application's route middleware. * * @var array */ 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数组中注册。
好了,注册完之后我们来用用吧:
route::get('/test-middleware',['middleware'=>'test',function(){ return 'hi';}]);
当我们输入:http://localhost:8000/test-middleware?id=1 时会在页面上输出hi 当输入 http://localhost:8000/test太原理工大学分数线-middleware?id=0 时会返回首页。
本文发布于:2023-04-08 03:51:32,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/fd8d5227767ddfc68a558dc3a2c42648.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Laravel5.1 框架Middleware中间件基本用法实例分析.doc
本文 PDF 下载地址:Laravel5.1 框架Middleware中间件基本用法实例分析.pdf
留言与评论(共有 0 条评论) |