
- Laravel 教程
- Laravel - 首页
- Laravel - 概述
- Laravel - 安装
- Laravel - 应用结构
- Laravel - 配置
- Laravel - 路由
- Laravel - 中间件
- Laravel - 命名空间
- Laravel - 控制器
- Laravel - 请求
- Laravel - Cookie
- Laravel - 响应
- Laravel - 视图
- Laravel - Blade 模板
- Laravel - 重定向
- Laravel - 数据库操作
- Laravel - 错误与日志
- Laravel - 表单
- Laravel - 国际化
- Laravel - Session
- Laravel - 验证
- Laravel - 文件上传
- Laravel - 发送邮件
- Laravel - Ajax
- Laravel - 错误处理
- Laravel - 事件处理
- Laravel - Facades
- Laravel - Contracts
- Laravel - CSRF 保护
- Laravel - 身份验证
- Laravel - 授权
- Laravel - Artisan 命令行
- Laravel - 加密
- Laravel - 哈希
- 理解发布流程
- Laravel - 客人用户权限
- Laravel - Artisan 命令
- Laravel - 分页自定义
- Laravel - Dump Server
- Laravel - Action URL
- Laravel 有用资源
- Laravel - 快速指南
- Laravel - 有用资源
- Laravel - 讨论
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 - 成功执行后,您将收到以下输出:

步骤 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。
https://127.0.0.1:8000/cookie/set
步骤 6 - 输出将如下所示。截图中的窗口来自 Firefox,但根据您的浏览器,也可以从 Cookie 选项中检查 Cookie。

步骤 7 - 访问以下 URL 从上面的 URL 获取 Cookie。
https://127.0.0.1:8000/cookie/get
步骤 8 - 输出将如下图所示。
