我遇到了一个重大问题。我已经开发了一段时间的应用程序。我已经设置了一些响应以发送422响应错误代码,该代码本来可以正常工作,但是最近我再次测试了这些模块,现在这些响应仅发送200状态。我尝试设置不同的状态代码,它总是发送200个状态代码。我使用了request-> validate来验证文件类型,这在错误情况下还会发送200状态代码。我用我的GIT提交检查了我的当前状态,但找不到任何实例来显示阻止此更改的实例。非常感谢您对此提供的帮助。我离我们太远了,无法恢复到工作状态。
我的代码应该发送一个不同的状态代码,而不是200
$validated = $request->validate(['inputFile' => 'required|mimes:xlsx,xls']);
if($validated){
$exists = DB::table($this->tables['tblperiod'][0])->where([[ $this->tables[ 'tblperiod'][1][1], $request->month ],[ $this->tables['tblperiod'][1][2], $request->year ]])->exists();
if(!$exists){
$this->doExcel($request);
$uploadData = $this->getRecentUpload($this->tables['tblallocation'][0], $this->tables['tblallocation'][1], $this->tables['tblperiod'][0], $this->tables['tblperiod'][1], $request->month, $request->year);
return response()->json(['success' => 'Data set of '. $request->month .' '. $request->year .' has been successfully imported and ready for reports.', 'upload' => $uploadData, 'month' => $request->month, 'year' => $request->year]);
}else{
return response()->json(['errors' => 'The data set ('. $request->month .' '. $request->year .') you are trying to upload already exists! Please check the period and try again.'], 422);
}
}
答案 0 :(得分:1)
这不是一个完整的答案,只是一些可能有价值的线索。
response()->json()
的文档可以在here中找到。似乎那里没有近期更改。
您可以在新项目中复制422吗?将下面的代码放在web.php中确实会给我422(以及错误)
Route::get('/test', function (Request $request) {
return response()->json(['errors' => 'Some error'], 422);
});
那应该是您使用的相同语法吗?
另一件事可能是:在打开<?php
标记之前空行导致错误的状态代码(始终为200)