当前位置: 首页 > 文档资料 > Laravel 入门教程 >

Cookie(Cookie)

优质
小牛编辑
125浏览
2023-12-01

Cookie在Web应用程序上处理用户会话时发挥着重要作用。 在本章中,您将学习如何在基于Laravel的Web应用程序中使用cookie。

创建Cookie

Cookie可以由Laravel的全局cookie帮助程序创建。 它是Symfony\Component\HttpFoundation\Cookie一个实例。 可以使用withCookie()方法将cookie附加到响应中。 创建Illuminate\Http\Response类的响应实例以调用withCookie()方法。 Laravel生成的Cookie经过加密和签名,客户端无法修改或读取。

这是一个带有解释的示例代码。

//Create a response instance
$response = new Illuminate\Http\Response('Hello World');
//Call the withCookie() method with the response method
$response->withCookie(cookie('name', 'value', $minutes));
//return the response
return $response;

Cookie()方法将采用3个参数。 第一个参数是cookie的名称,第二个参数是cookie的值,第三个参数是cookie的持续时间,之后cookie将自动删除。

可以使用forever方法永久设置Cookie,如下面的代码所示。

$response->withCookie(cookie()->forever('name', 'value'));

检索Cookie

设置cookie后,我们可以通过cookie()方法检索cookie。 这个cookie()方法只接受一个参数,它将是cookie的名称。 可以使用Illuminate\Http\Request实例调用cookie方法。

这是一个示例代码。

//’name’ is the name of the cookie to retrieve the value of
$value = $request->cookie('name');

例子 (Example)

请观察以下示例以了解有关Cookie的更多信息 -

Step 1 - 执行以下命令创建一个控制器,我们将在其中操作cookie。

php artisan make:controller CookieController --plain

Step 2 - 成功执行后,您将收到以下输出 -

CookieController

Step 3 - 复制以下代码

app/Http/Controllers/CookieController.php文件。

app/Http/Controllers/CookieController.php

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class CookieController extends Controller {
   public function setCookie(Request $request){
      $minutes = 1;
      $response = new Response('Hello World');
      $response->withCookie(cookie('name', 'virat', $minutes));
      return $response;
   }
   public function getCookie(Request $request){
      $value = $request->cookie('name');
      echo $value;
   }
}

Step 4 - 在app/Http/routes.php file添加以下行。

app/Http/routes.php

Route::get('/cookie/set','CookieController@setCookie');
Route::get('/cookie/get','CookieController@getCookie');

Step 5 - 访问以下URL以设置cookie。

http://localhost:8000/cookie/set

Step 6 - 输出将如下所示。 屏幕截图中显示的窗口来自firefox,但根据您的浏览器,还可以从cookie选项中检查cookie。

你好,世界

Step 7 - 访问以下URL以从上述URL获取cookie。

http://localhost:8000/cookie/get

Step 8 - 输出将如下图所示。

Virat