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

Класс JsonResponse

Класс JsonResponse используется для возврата JSON-данных из контроллеров Laravel. Он автоматически устанавливает правильные заголовки и кодирует данные в JSON. Первым параметром передаются данные для преобразования, вторым - код состояния HTTP, третьим - массив дополнительных заголовков. По умолчанию возвращается код состояния 200 и заголовок 'Content-Type: application/json'.

Синтаксис

<?php new JsonResponse($data, $status, $headers); ?>

Альтернативный способ создания через функцию-помощник:

<?php response()->json($data, $status, $headers); ?>

Пример

Давайте вернём простой JSON-ответ с массивом данных:

<?php namespace AppHttpControllers; use IlluminateHttpJsonResponse; use AppModelsUser; class UserController extends Controller { public function index(): JsonResponse { $users = User::all(); return new JsonResponse($users); } } ?>

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

[ {"id":1,"name":"John","email":"john@example.com"}, {"id":2,"name":"Jane","email":"jane@example.com"} ]

Пример

Давайте вернём JSON-ответ с кодом состояния 201 (Created) и дополнительными заголовками:

<?php namespace AppHttpControllers; use IlluminateHttpJsonResponse; use AppModelsArticle; class ArticleController extends Controller { public function store(): JsonResponse { $article = Article::create([ 'title' => 'New article', 'text' => 'Article content' ]); $headers = [ 'X-Custom-Header' => 'Custom value', 'X-Created-At' => now()->toISOString() ]; return new JsonResponse($article, 201, $headers); } } ?>

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

{"id":1,"title":"New article","text":"Article content","created_at":"2026-09-08 10:00:00","updated_at":"2026-09-08 10:00:00"}

Пример

Давайте вернём JSON-ответ с помощью функции-помощника для создания API-ответа:

<?php namespace AppHttpControllersApi; use AppHttpControllersController; use AppModelsProduct; class ProductController extends Controller { public function show(int $id) { $product = Product::find($id); if (!$product) { return response()->json([ 'error' => 'Product not found', 'code' => 404 ], 404); } return response()->json([ 'data' => $product, 'success' => true ], 200); } } ?>

Результат выполнения кода для существующего продукта:

{"data":{"id":1,"name":"Product 1","price":99.99},"success":true}

Результат выполнения кода для несуществующего продукта:

{"error":"Product not found","code":404}

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

  • класс Response,
    который является базовым классом для всех HTTP-ответов
  • метод json,
    который создаёт JSON-ответ через фасад Response
  • класс RedirectResponse,
    который используется для редиректов
  • функция response,
    которая является глобальной функцией-помощником для создания ответов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить