有没有办法让laravel报告输入格式错误的JSON?现在控制器只是没有收到任何数据,如果内容类型是json请求,我希望它引发异常
答案 0 :(得分:2)
在过滤器中执行此操作:
App::before(function ($request)
{
if ( ! str_contains($request->getContentType(), 'json')) return;
json_decode($request->getContent());
if (json_last_error() != JSON_ERROR_NONE)
{
throw new Exception('Malformed JSON.');
}
});
如果您在没有内容时不希望它失败,请使用:
App::before(function ($request)
{
if ( ! ($content = $request->getContent())) return;
if ( ! str_contains($request->getContentType(), 'json')) return;
json_decode($content);
if (json_last_error() != JSON_ERROR_NONE)
{
throw new Exception('Malformed JSON.');
}
});