【发布时间】:2019-10-17 11:01:34
【问题描述】:
我正在尝试使用 laravel 创建一个 RESTful API,我正在尝试获取具有无效 ID 的资源,结果是 404,因为它没有找到,但我的问题是响应不是 JSON 格式,但是带有 HTML 的 View 404(默认情况下)。有没有办法将响应转换为 JSON?对于这种情况,我使用 Homestead。
我尝试包含一个后备路由,但它似乎不适合这种情况。
Route::fallback(function () {
return response()->json(['message' => 'Not Found.'], 404);
});
我尝试修改处理程序(App\Exceptions),但没有任何改变。
public function render($request, Exception $e)
{
if ($e instanceof ModelNotFoundException) {
if ($request->ajax()) {
return response()->toJson([
'message' => 'Not Found.',
], 404);
}
}
return parent::render($request, $e);
}
【问题讨论】:
-
$e instanceof \Illuminate\Database\Eloquent\ModelNotFoundException工作吗? -
您需要发送正确的内容类型:
'content-type':'application/json' -
关于 ModelNotFoundException - 不,它似乎直接通过了。我不明白。当我使用 GET 方法来捕获所有结果时,可以(Json 响应),但是在一种情况下(例如,一个特定的 ID),所有结果都是 HTML 响应