Laravel - 响应

Web 应用程序根据许多参数以多种方式响应用户的请求。本章详细介绍了 Laravel Web 应用程序中的响应。

基本响应

Laravel 提供了几种不同的返回响应的方法。响应可以从路由或控制器发送。可以发送的基本响应是简单字符串,如下面的示例代码所示。此字符串将自动转换为适当的 HTTP 响应。

示例

步骤 1 − 将以下代码添加到 app/Http/routes.php 文件。

app/Http/routes.php

Route::get('/basic_response', function () {
   return 'Hello World';
});

步骤 2访问以下 URL 以测试基本响应。

http://localhost:8000/basic_response

步骤 3 − 输出将如下图所示显示。

Basic Response

附加标头

可以使用 header() 方法将响应附加到标头。我们还可以附加一系列标头,如下面的示例代码所示。

return response($content,$status)
   ->header('Content-Type', $type)
   ->header('X-Header-One', 'Header Value')
   ->header('X-Header-Two', 'Header Value');

示例

观察以下示例以了解有关响应的更多信息 −

步骤 1 − 将以下代码添加到 app/Http/routes.php 文件。

app/Http/routes.php

Route::get('/header',function() {
    return response("Hello", 200)->header('Content-Type', 'text/html');
});

步骤 2 − 访问以下 URL 以测试基本响应。

http://localhost:8000/header

步骤 3 −输出将如下图所示显示。

Hello

附加 Cookies

withcookie() 辅助方法用于附加 cookies。使用此方法生成的 cookie 可以通过使用响应实例调用 withcookie() 方法来附加。默认情况下,Laravel 生成的所有 cookie 都经过加密和签名,因此客户端无法修改或读取它们。

示例

观察以下示例以了解有关附加 cookie 的更多信息 −

步骤 1 − 将以下代码添加到 app/Http/routes.php 文件。

app/Http/routes.php

Route::get('/cookie',function() {
   return response("Hello", 200)->header('Content-Type', 'text/html')
      ->withcookie('name','Virat Gandhi');
});

步骤 2访问以下 URL 以测试基本响应。

http://localhost:8000/cookie

步骤 3 − 输出将如下图所示显示。

Hello

JSON 响应

可以使用 json 方法发送 JSON 响应。此方法将自动将 Content-Type 标头设置为 application/jsonjson 方法会自动将数组转换为适当的 json 响应。

示例

观察以下示例以了解有关 JSON 响应的更多信息 −

步骤 1 − 在 app/Http/routes.php 文件中添加以下行。

app/Http/routes.php

Route::get('json',function() {
    return response()->json(['name' => 'Virat Gandhi', 'state' => 'Gujarat']);
});

步骤 2 −访问以下 URL 测试 json 响应。

http://localhost:8000/json

步骤 3 − 输出将如下图所示。

Json Response