当前位置:首页 > CMS教程 > 其它CMS > 列表

laravel框架中间件简单使用方法示例

发布:smiling 来源: PHP粉丝网  添加日期:2022-02-07 10:57:09 浏览: 评论:0 

本文实例讲述了laravel框架中间件简单使用方法,分享给大家供大家参考,具体如下:

laravel内置了一个中间件来验证用户是否经过认证,如果用户没有经过认证,中间件会将用户重定向到登录页面,否则如果用户经过认证,中间件就会允许请求继续往前进入下一步操作。

当然,除了认证之外,中间件还可以被用来处理更多其它任务。比如:CORS 中间件可以用于为离开站点的响应添加合适的头(跨域);日志中间件可以记录所有进入站点的请求。

Laravel框架自带了一些中间件,包括认证、CSRF 保护中间件等等。所有的中间件都位于 app/Http/Middleware目录。

中间是请求前还是请求后执行取决于中间件本身,以下中间件会在请求处理前执行一些任务

  1. <?php 
  2. namespace App\Http\Middleware; 
  3. use Closure; 
  4. class TestMiddle 
  5.   public function handle($request, Closure $next
  6.   { 
  7.     // 执行动作 
  8.     if(!$request->session()->has('huser')){ 
  9.       return redirect("login/index"); 
  10.     } 
  11.     return $next($request); 
  12.   } 

而下面这个中间件则会在请求处理后执行其任务:

  1. <?php 
  2. namespace App\Http\Middleware; 
  3. use Closure; 
  4. class TestMiddle 
  5.   public function handle($request, Closure $next
  6.   { 
  7.     $response = $next($request); 
  8.     // 执行动作 
  9.     if(!$request->session()->has('huser')){ 
  10.       return redirect("login/index"); 
  11.     } 
  12.     return $response
  13.   } 

中间件可以自己在编辑器里面新建对应类生成,也可用命令生成

php artisan make:middleware TestMiddle

此时,laravel的app\Http\Middleware\目录就会多一个TestMiddle.php的中间件文件

此时中间件还不能直接使用,必须把它注册到我们的laravel中,如下

只需在 app/Http/Kernel.php 类(3个属性,对应里面加入,我有时用路由的)

'TestMiddle' => \App\Http\Middleware\TestMiddle::class,

分配中间件到路由,下面介绍三种方式

  1. Route::get('/',function(){ 
  2.   return redirect('home/index'); 
  3. })->middleware('TestMiddle'); 
  4. Route::group(['middleware' => ['TestMiddle']], function() { 
  5.   Route::controller("db","DataBaseController"); 
  6. }); 
  7. Route::controller("home","HomeController",['middleware'=>'TestMiddle']);

Tags: laravel中间件

分享到: