Lumen 5.5 NotFoundHttpException处理程序

时间:2017-11-01 18:49:02

标签: php http lumen

我正在Lumen 5.5和我的错误处理程序中运行一个小应用程序,当我将视图作为我的响应内容传递时,标题会得到错误500而不是404.

我添加了一个示例代码段,请考虑我只会返回一个或另一个回复!

文件:app / Exceptions / Handler.php

/**
 * Render an exception into an HTTP response.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Exception  $e
 * @return \Illuminate\Http\Response
 */
 public function render($request, Exception $e) {
    if($e instanceof NotFoundHttpException) {

        // This gives me a 404 in the browser dev console but not in the headers
        return response(view("errors.404"), 404);

        // This gives me a 404 in the headers
        return response('404 error', 404);

    }
    return parent::render($request, $e);
}

如果我在浏览器DevTools中加载此页面,我的GET状态为404,但如果我使用在线http检查工具扫描,则会收到错误500.

这使我的Adwords广告系列变得混乱,因此我不得不转换为明确的回复。

因为它是流明,我不能使用在Laravel中可以使用的以下内容:

return response(view('error.404', [], 404));

非常感谢你。

1 个答案:

答案 0 :(得分:0)

这个怎么样:

use Illuminate\Http\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

if ($e instanceof NotFoundHttpException) {
    return new Response(
        view('errors.404'),
        $e->getStatusCode(),
        $e->getHeaders()
    );
}