php Laravel 5.7 Контроллер не возвращает заданные коды состояния - PullRequest
0 голосов
/ 01 декабря 2018

Я застрял с серьезной проблемой.Я какое-то время разрабатывал приложение.Я установил некоторые ответы, чтобы отправить код ошибки 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);
        }
    }

1 Ответ

0 голосов
/ 01 декабря 2018

Это не полный ответ, просто некоторые подсказки, которые могут иметь значение.

Документацию для response()->json() можно найти здесь .Кажется, там нет недавних изменений.

Можете ли вы воспроизвести 422 в новом проекте?Помещение приведенного ниже кода в web.php дает мне 422 (вместе с ошибками)

Route::get('/test', function (Request $request) {
    return response()->json(['errors' => 'Some error'], 422);
});

Это должен быть тот же синтаксис, который вы используете?

Другое может быть: пустострока перед открытием <?php тег приводит к неверному коду статуса (всегда 200)

...