Laravel5.1 框架Middleware中间件基本用法实例分析
Laravel  /  管理员 发布于 8年前   218
本文实例讲述了Laravel5.1 框架Middleware中间件基本用法。分享给大家供大家参考,具体如下: 中间件?什么鬼? 大家第一次接触这个词都会有这么个疑问,但它其实没那么神秘。 一句话就可以解释它:过滤HTTP请求专用机制。 过滤HTTP请求是可以写在别的地方,比如说控制器中 路由中,BUT 抽象出来就有它的理由,比如说Laravel自带的Auth中间件 它要求必须是登录进来的用户才有权访问 如果没有登录就跳转到登录页面,这样的逻辑在很多场景都会用到 这很明显了吧 你不可能在每个控制器或每一个路由都单独实现以便,直接抽出来多方便。 咱创建中间件是使用artisan控制台的: 创建好后位于:app/Http/Middleware 首先我们来看看新创建的中间件是什么模样儿: 解读:middleware中只有 “handle”函数 这个函数呢接受两个参数 它的流程是接受request参数 取出一些东西做验证 如果逻辑通过 执行next闭包。 如果你还是不太懂的话 没关系 咱上实例 完事儿后我们需要在 app/Http/Kernel.php 中进行注册: 注意:我们可以瞧见啊 Kernel 中有两个数组 如果你希望在全局中使用 就注册在middleware数组中,如果你想要局部使用middleware 那么就在routeMiddleware数组中注册。 好了,注册完之后我们来用用吧: 当我们输入:http://localhost:8000/test-middleware?id=1 时会在页面上输出HI 当输入 http://localhost:8000/test-middleware?id=0 时会返回首页。 更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。为什么要使用中间件?
1 使用中间件
1.1 创建中间件
php artisan make:middleware TestMiddleware
1.2 解读中间件
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); }}
1.3 编写中间件
public function handle($request, Closure $next) { // 如果传入的id参数等于0 就跳转到首页。 if ($request->input('id') == 0){ return redirect('/'); } // id参数不等于0 则为通过 进行默认的下一步操作。 return $next($request); }
/** * The application's global HTTP middleware stack. * * @var array */ 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, ]; /** * 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, ];
1.4 使用中间件
Route::get('/test-middleware',['middleware'=>'test',function(){ return 'HI';}]);
您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号