Code前端首页关于Code前端联系我们

Laravel 教程:Cookie 的创建和检索

terry 2年前 (2023-09-25) 阅读数 50 #后端开发

创建 Cookie

Cookie 可以使用 Laravel 的全局 cookie 助手 创建。

它是 Symfony\Component\HttpFoundation\Cookie 的一个实例,可以使用 withCookie() 方法将 cookie 附加到响应中。

调用Cookie()方法创建Illuminate\Http\Response类的实例。 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方法将其设置为永久有效,如下代码所示。

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

示例

步骤 1 - 运行以下命令创建一个控制器来处理 cookie。
php artisan make:controller CookieController
第2步 - 成功执行后,您将得到以下输出 -
Laravel教程: Cookie的创建与检索第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;
   }
}
第 4 步 - 将以下行添加到文件 - app/Http/routes.php。

app/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。
Laravel教程: Cookie的创建与检索第 7 步 - 访问以下网站以从上述 URL 获取 cookie。

http://localhost:8000/cookie/get第8步 - 打印结果如下图所示。
Laravel教程: Cookie的创建与检索

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门