【问题标题】:middleware not working in laravel's lumen中间件在 laravel 的流明中不起作用
【发布时间】:2017-04-27 05:18:17
【问题描述】:

我刚刚开始学习 lumen 微框架,但由于我的中间件似乎无法正常工作而遇到了麻烦。这是我的代码。

//defined middleware in route
    $app->get('/hello/{name}', ['middleware' => 'shield','uses' => 'Sampcontroller@show']);

//registered middleware in app.php
     $app->routeMiddleware([
        'shield' => App\Http\Middleware\Agemiddleware::class,
    ]);

这里是中间件代码

  public function handle($request, Closure $next){
        if ($request->input('name') == "18") {
            echo "hate yew";
        }

        return $next($request); 
   }
}

【问题讨论】:

  • 您是否尝试使用 dd() 而不是 echo? Laravel 可能不会在其生命周期结束时呈现回显输出。
  • 你确实试过打电话给/hello/18
  • 我想要做的是,如果输入字段值是 ''== 18'' 那么它应该回显一些东西。但我的代码只是忽略了中间件!
  • @HudsonPereira 什么是 dd()?你能解释一下吗?
  • dd() 是 laravel 提供的辅助函数。这意味着死转储。基本上像var_dump()

标签: php laravel lumen lumen-5.2 lumen-5.3


【解决方案1】:

修正你的类名(只是为了约定)。 AgeMiddleware(重命名文件和类)。

转到 bootstrap/app.php 并注册您的路由中间件

$app->routeMiddleware([
    'shield' => App\Http\Middleware\AgeMiddleware::class,
]);

确保将此 sn-p 放在 return 语句上方。

点击/hello/18

如果这不起作用,您可能在这条路线之上还有另一条路线收到 /home/something 获取请求。

【讨论】:

    猜你喜欢
    • 2020-11-27
    • 1970-01-01
    • 2015-11-14
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    相关资源
    最近更新 更多