@MasterCopipaster

Laravel как отправить код 102 в контроллере а потом 200?

Что я должен написать в контроллере что бы повторить простой пример ниже?
<?php
header('HTTP/1.1 102 Processing'); // let client know it might take a while
sleep(2); // do stuff that takes a while
header('HTTP/1.1 200 OK'); // counterintuitive, but works

Собственно контроллер
public function destroy($id)
    {
        try {
            $auto_mark = Mark::findOrFail($id);
        } catch (\Exception $e) {
            return $this->failedRequest('NOT_FOUND');
        }
        try {
            $auto_mark->delete();
        } catch (\Exception $e) {
            return $this->failedRequest('DELETE_FAIL');
        }
        return response()->json(['status' => 'success'], 200);
    }


Не совсем понимаю как мне сделать что бы перед $auto_mark->delete(); laravel ответил браузеру 102 и продолжил работу? ведь если я верну код ответа через return то контроллер остановится в этой точке?
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 1
dlnsk
@dlnsk
ПК Партнер 01.01 -> ПК Поиск -> IBM PC
А вы уверены что это именно в таком контексте должно использоваться?
Мне кажется что последовательность здесь примерно такая:
1. Из SPA с помощью например ajax посылается запрос на длительную операцию.
2. Через определенные промежутки времени через ajax посылается запрос о состоянии задачи. Сервер отвечает 102, если задача еще выполняется, а в теле например процент выполнения.
3. При очередном запросе состояния сервер отвечает 200, говоря о выполненной операции. SPA меняет интерфейс соответствующим образом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы