Yii2的Cookie主要是通过yii/web/Request和yii/web/Response进行操作的,Yii2的Session比较简单 ,直接通过/Yii::$app->session进行操作就好了。本文给大家介绍COOKIE和SESSION用法,需要的朋友参考下

1、Cookie

Yii2的Cookie主要是通过yii/web/Request和yii/web/Response进行操作的 ,通过/Yii::$app->response->getCookies()->add()添加Cookie,通过/Yii::$app->request->cookies读取Cookie.

1)添加一个Cookie

<?php
//第一种方法
$cookie= new/yii/web/Cookie();
$cookie-> name = 'smister';//cookie的名称
$cookie-> expire = time() + 3600; //存活的时间
$cookie-> httpOnly = true; //无法通过js读取cookie
$cookie-> value = 'cookieValue'; //cookie的值
Yii::$app->response->getCookies()->add($cookie);
//第二种方法
$cookie= new/yii/web/Cookie([‘name' => ‘smister',‘expire' => time() + 3600,‘httpOnly ' => true,‘value' => ‘cookieValue']);
Yii::$app->response->getCookies()->add($cookie);
?>

2) 读取一个Cookie

<?php
$cookie= Yii::$app->request->cookies;//返回一个/yii/web/Cookie对象
$cookie->get(‘smister');//直接返回Cookie的值
$cookie->getValue(‘smister'); //$cookie[‘smister'] 其实这样也是可以读取的
//判断一个Cookie是否存在
$cookie->has(‘smister');//读取Cookie的总数
$cookie->count();//$cookie->getCount();跟count一样
?>

3) 删除Cookie

<?php
$cookie= Yii::$app->request->cookies->get(‘smister');
//移除一个Cookie对象
Yii::$app->response->getCookies()->remove($cookie);
//移除所有Cookie,目前好像不太好使
Yii::$app->response->getCookies()->removeAll();
?>

4) 注意

对Cookie进行增删改时调用的response , 对Cookie读取时使用的是Request

2、Session

Yii2的Session比较简单 ,直接通过/Yii::$app->session进行操作就好了

1) 添加一个session

<?php
$session= Yii::$app->session;
$session->set('smister_name', 'myname');
$session->set('smister_array',[1,2,3]);
?>

2) 读取一个session

<?php
$session= Yii::$app->session;
//读取一个Session
$session->get('smister_name);
?>

3) 删除Session

<?php
$session= /Yii::$app->session;
//删除一个session
$session->remove(‘smister_name');
//删除所有session
$session->removeAll();
?>

Leave A Comment

Recommended Posts

调用Yii::getAlias与Yii::setAlias的用法

别名用来表示文件路径和URL,简化引用,避免在代码中编码一些绝对路径和URL。一个别名必须以‘@’字符开头,以区别于传统的文件路径和URL。定义别名:调用Yii::setAlias()给文件路径或URL定义别名:// 文件路径的别名Yii::setAlias(‘@foo’, ‘/path/to/foo’);// URL 的别名Yii::setAlias(‘@bar’, ‘http://www.example.com’);注意:别名所指向的文件路径或 URL 不一定是真实存在的文件或资源。可以通过在一个别名后面加斜杠 / 和一至多个路径分段生成新别名(无需调用 Yii::setAlias())。我们把通过 Yii::setAlias() 定义的别名称为根别名,而用他们衍生出去的别名成为衍生别名。例如,@foo 就是根别名,而 @foo/bar/file.php 是一个衍生别名。你还可以用别名去定义新别名(根别名与衍生别名均可):Yii::setAlias(‘@foobar’, ‘@foo/bar’);解析别名:调用Yii::getAlias解析别名到对应的文件路径或URL:如// echo Yii::getAlias(‘@webroot’); // D:/path/yiibasic/web// echo Yii::getAlias(‘@app’); // D:\path\yiibasic// echo Yii::getAlias(‘@web’); // /yiibasic/web注意:Yii::getAlias() 并不检查结果路径/URL 所指向的资源是否真实存在。系统定义的路径别名:@yii – BaseYii.php 文件所在的目录(也被称为框架安装目录)@app – 当前运行的应用程序的基本路径 yii\base\Application::basePath@common – 公共文件目录@frontend – 前端web应用程序目录@backend – 后端web应用程序目录@console – 控制台目录@runtime – 当前运行的应用的 yii\base\Application::runtimePath@vendor – yii\base\Application::vendorPath@webroot – 当前运行应用的 Web 入口目录@web – 当前运行应用的根 URL

blueidea