РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
487 of 1392 menu

Класс Response

Класс Response позволяет формировать HTTP-ответы с различным содержимым, статусами и заголовками. Он предоставляет удобные методы для создания JSON-ответов, скачивания файлов, потоковой передачи данных и многого другого. В Laravel ответы могут быть созданы как через глобальную функцию response, так и через фасад Response.

Синтаксис

<?php response($content, $status, $headers); ?>

Первым параметром передаётся содержимое ответа, вторым - HTTP-статус, третьим - массив заголовков.

Пример

Создадим простой ответ с текстовым содержимым и статусом 200:

<?php use Illuminate\Support\Facades\Route; Route::get('/text', function () { return response('Hello World', 200) ->header('Content-Type', 'text/plain'); }); ?>

Результат выполнения кода:

Hello World

Пример

Создадим JSON-ответ с помощью метода json:

<?php use Illuminate\Support\Facades\Route; Route::get('/user', function () { $data = [ 'name' => 'John Doe', 'email' => 'john@example.com', 'age' => 30 ]; return response()->json($data, 200); }); ?>

Результат выполнения кода:

{"name":"John Doe","email":"john@example.com","age":30}

Пример

Добавим к ответу несколько заголовков с помощью метода withHeaders:

<?php use Illuminate\Support\Facades\Route; Route::get('/custom-headers', function () { return response('Custom headers response') ->withHeaders([ 'X-Custom-Header' => 'Custom Value', 'X-Another-Header' => 'Another Value', 'Cache-Control' => 'no-cache' ]); }); ?>

Пример

Создадим файл для скачивания с помощью метода download:

<?php use Illuminate\Support\Facades\Route; Route::get('/download-file', function () { $path = storage_path('app/public/document.pdf'); if (!file_exists($path)) { abort(404, 'File not found'); } return response()->download($path, 'document.pdf'); }); ?>

Пример

Используем метод file для отображения файла в браузере:

<?php use Illuminate\Support\Facades\Route; Route::get('/show-image', function () { $path = storage_path('app/public/image.jpg'); if (!file_exists($path)) { abort(404, 'File not found'); } return response()->file($path); }); ?>

Пример

Создадим потоковый ответ с помощью метода stream:

<?php use Illuminate\Support\Facades\Route; Route::get('/stream', function () { $callback = function () { for ($i = 1; $i <= 10; $i++) { echo "Chunk {$i}\n"; flush(); usleep(500000); } }; return response()->stream($callback, 200, [ 'Content-Type' => 'text/plain', ]); }); ?>

Результат выполнения кода:

"Chunk 1\nChunk 2\nChunk 3\n..."

Пример

Создадим ответ с пустым содержимым и статусом 204 с помощью метода noContent:

<?php use Illuminate\Support\Facades\Route; Route::delete('/user/{id}', function ($id) { // Код удаления пользователя return response()->noContent(); }); ?>

Смотрите также

  • класс JsonResponse,
    который используется для JSON-ответов
  • класс RedirectResponse,
    который используется для редиректов
  • класс StreamedResponse,
    который используется для потоковых ответов
  • класс BinaryFileResponse,
    который используется для файловых ответов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить