Функция response
Функция response является вспомогательной функцией Laravel для создания HTTP-ответов. Она возвращает экземпляр класса IlluminateHttpResponse или его производных. Первым параметром передаются данные ответа, вторым - HTTP-статус, третьим - заголовки. Если передан массив или коллекция, функция автоматически преобразует их в JSON-ответ с соответствующим заголовком.
Синтаксис
<?php
response($data, $status, $headers);
?>
Пример
Давайте вернём простую строку в качестве ответа:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/hello', function () {
return response('Hello, World!', 200);
});
?>
Результат выполнения кода:
Hello, World!
Пример
Давайте вернём JSON-ответ с массивом данных:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/users', function () {
$res = ['user' => 'John Doe', 'email' => 'john@example.com'];
return response($res, 200);
});
?>
Результат выполнения кода:
{"user":"John Doe","email":"john@example.com"}
Пример
Давайте добавим пользовательские заголовки к ответу:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/custom-header', function () {
$headers = ['X-Custom-Header' => 'Custom Value'];
return response('Data with custom header', 200, $headers);
});
?>
Результат выполнения кода (заголовок будет присутствовать в ответе):
"Data with custom header"
Пример
Давайте используем функцию для скачивания файла:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/download', function () {
$path = storage_path('app/public/file.pdf');
return response()->download($path);
});
?>
Результат выполнения кода:
"Файл file.pdf скачан"
Смотрите также
-
класс
Response,
который представляет HTTP-ответ в Laravel -
функция
redirect,
которая создаёт редиректы -
функция
view,
которая возвращает представления -
класс
JsonResponse,
который используется для JSON-ответов