在Lumen中设置具有中间件的响应头

时间:2015-05-22 17:40:49

标签: php http-headers lumen

我试图在Lumen微框架中使用X-Powered-By设置标头(AfterMiddleware)。不幸的是,标题没有被设置。假设中间件(如下所示)甚至没有被处理。

AfterMiddleware.php

<?php namespace App\Http\Middleware;

use Closure;

class AfterMiddleware {

    public function handle($request, Closure $next)
    {
        $response = $next($request);

        $response->header('X-Powered-By', env('APP_NAME') . '/' . env('APP_VER'));

        return $response;
    }
}

bootstrap / app.php 中间件设置器

$app->middleware([
    'App\Http\Middleware\AfterMiddleware'
]);

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:1)

想出来:中间件不会被处理异常(404,在我的情况下)。我的临时解决方案是直接在异常处理程序中将标头添加到响应中。

if ($e instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException) {
    return response(view('not-found'), 404)->header('X-Powered-By', env('APP_NAME')."/".env('APP_VER'));
}

不幸的是,即使$replace默认为true,标题也会重复。将为此开启一个新问题。