- Laravel 教程
- Laravel - 主页
- Laravel - 概述
- Laravel - 安装
- Laravel - 应用程序结构
- Laravel - 配置
- Laravel - 路由
- Laravel - 中间件
- Laravel - 命名空间
- Laravel - 控制器
- Laravel - 请求
- Laravel-Cookie
- Laravel - 响应
- Laravel - 视图
- Laravel - 刀片模板
- Laravel - 重定向
- Laravel - 使用数据库
- Laravel - 错误和日志记录
- Laravel - 表单
- Laravel - 本地化
- Laravel - 会话
- Laravel - 验证
- Laravel - 文件上传
- Laravel - 发送电子邮件
- Laravel - AJAX
- Laravel - 错误处理
- Laravel - 事件处理
- Laravel - 外观
- Laravel - 合约
- Laravel - CSRF 保护
- Laravel - 身份验证
- Laravel - 授权
- Laravel - Artisan 控制台
- Laravel - 加密
- Laravel - 哈希
- 了解发布流程
- Laravel - 访客用户门
- Laravel - Artisan 命令
- Laravel - 分页自定义
- Laravel - 转储服务器
- Laravel - 操作 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文件。
应用程序/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 - 输出将如下图所示。