Laravel-Cookie


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');

例子

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

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

php artisan make:controller CookieController --plain

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

Cookie控制器

步骤 3 - 将以下代码复制到

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

应用程序/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;
   }
}

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

应用程序/Http/routes.php

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

步骤 5 - 访问以下 URL 以设置 cookie。

http://localhost:8000/cookie/set

步骤 6 - 输出将如下所示。屏幕截图中出现的窗口取自 Firefox,但根据您的浏览器,也可以从 cookie 选项检查 cookie。

你好世界

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

http://localhost:8000/cookie/get

步骤 8 - 输出将如下图所示。

维拉特