📅  最后修改于: 2023-12-03 15:21:21.549000             🧑  作者: Mango
在 Yii2 中,设置 Cookie 非常方便。Cookie 用于在客户端浏览器中存储有关用户会话的信息。在本文中,我们将讨论如何在 Yii2 中设置 Cookie。
通过 Yii::$app->response->cookies
属性访问响应对象的 cookie 集合。您可以使用该集合添加、修改或删除 cookie。
下面是在 Yii2 中设置 Cookie 的示例:
// 设置 Cookie
$cookie = new \yii\web\Cookie([
'name' => 'mycookie',
'value' => 'Hello, World!'
]);
Yii::$app->response->cookies->add($cookie);
在上面的代码中,我们使用 $cookie
实例化 yii\web\Cookie
类来设置 Cookie。add()
方法将 Cookie 添加到响应对象的 cookie 集合中。
您可以随时修改 Cookie 的值和属性,只需更新 $cookie
对象即可。例如:
// 修改 Cookie
$cookie = Yii::$app->response->cookies->get('mycookie');
$cookie->value = 'Hello, Yii2!';
Yii::$app->response->cookies->add($cookie);
在使用 get()
方法获取 Cookie 对象后,我们可以修改其值,接着将其重新添加到 cookie 集合中。
通过 Yii::$app->request->cookies
属性访问请求对象的 cookie 集合。您可以使用该集合获取客户端传递的 cookie。
下面是在 Yii2 中获取 Cookie 的示例:
// 获取 Cookie
$cookieValue = Yii::$app->request->cookies->getValue('mycookie');
echo $cookieValue;
在上面的代码中,我们使用 getValue()
方法从请求对象的 cookie 集合中获取 Cookie 的值。如果 Cookie 不存在,则返回 null
。
通过 yii\web\Cookie::expire
属性将 Cookie 删除。设置 cookie 的 expire
值为当前时间将删除 cookie。
下面是在 Yii2 中删除 Cookie 的示例:
// 删除 Cookie
$cookie = Yii::$app->response->cookies->get('mycookie');
$cookie->expire = time() - 3600;
Yii::$app->response->cookies->add($cookie);
在上面的代码中,我们使用 get()
方法获取 Cookie 对象,接着设置 expire 属性为过去时间来删除 cookie。然后将 cookie 对象重新添加到 cookie 集合中。
在 Yii2 中,设置 Cookie 非常方便。您可以使用 $cookie = new \yii\web\Cookie()
实例化 yii\web\Cookie
类来设置 Cookie。使用 Yii::$app->response->cookies
属性访问响应对象的 cookie 集合。
在将 Cookie 添加到响应对象的 cookie 集合中后,只需使用 Yii::$app->request->cookies
属性访问请求对象的 cookie 集合即可获取 Cookie。如果要删除 Cookie,只需将 Cookie 的 expire
属性设置为过去时间。