我正在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));
非常感谢你。
答案 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()
);
}