Laravel5.1 框架Middleware中间件基本用法实例分析
发布:smiling 来源: PHP粉丝网 添加日期:2022-02-02 10:43:28 浏览: 评论:0
本文实例讲述了Laravel5.1 框架Middleware中间件基本用法,分享给大家供大家参考,具体如下:
中间件?什么鬼? 大家第一次接触这个词都会有这么个疑问,但它其实没那么神秘。
一句话就可以解释它:过滤HTTP请求专用机制。
为什么要使用中间件?
过滤HTTP请求是可以写在别的地方,比如说控制器中 路由中,BUT 抽象出来就有它的理由,比如说Laravel自带的Auth中间件 它要求必须是登录进来的用户才有权访问 如果没有登录就跳转到登录页面,这样的逻辑在很多场景都会用到 这很明显了吧 你不可能在每个控制器或每一个路由都单独实现以便,直接抽出来多方便。
1 使用中间件
1.1 创建中间件
咱创建中间件是使用artisan控制台的:
php artisan make:middleware TestMiddleware
创建好后位于:app/Http/Middleware
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);
- }
- }
解读:middleware中只有 “handle”函数 这个函数呢接受两个参数
它的流程是接受request参数 取出一些东西做验证 如果逻辑通过 执行next闭包。
如果你还是不太懂的话 没关系 咱上实例
1.3 编写中间件
- 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 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,
- ];
注意:我们可以瞧见啊 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 时会返回首页。
Tags: Laravel5.1 Middleware
- 上一篇:Laravel 5.1 框架Blade模板引擎用法实例分析
- 下一篇:最后一页
相关文章
- ·Laravel框架控制器的middleware中间件用法分析(2021-12-25)

推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)