Yii之session

12 篇文章 0 订阅
概述

这里只是简单讲一下用法,如果想更详细的了解,去看 官方手册 比较好。

和请求和响应类似, 默认可通过为yii\web\Session 实例的session 应用组件 来访问sessions。

利用Yii操作session
// 首先,加载session组件
$session = Yii::$app->session();

// 检查session是否开启
if($session->isActive){
    // session已经打开
}

// 开启session
$session->open();

// 设置name的session值为张三
$session->set('name','张三');
// 跟以下语句效果相同
$_SESSION['name'] = '张三';

// 获取session中name的值
$session->get('name','my');
// 获取时,会自动打开session,无需手动。而且如果name值不存在时,会默认输出'my'

// 移除session中的name变量
$session->remove('name');

// 移除全部的session变量
$session->removeAll();

// 查看session是否存在name变量
$session->has('name');

// 关闭session
$session->close();

// 销毁session中所有已经注册的数据
$session->destroy();
Flash 数据
简单介绍

Flash数据是一种特别的session数据,它一旦在某个请求中设置后, 只会在下次请求中有效,然后该数据就会自动被删除。 常用于实现只需显示给终端用户一次的信息, 如用户提交一个表单后显示确认信息。

实现方式
// 首先,加载session组件
$session = Yii::$app->session();

// 设置名为'success' flash 信息
$session->setFlash('success','This is success!');

// 获取并显示'success' flash 信息
echo $session->getFlash('success');

// 查看'success' flash 信息是否存在
if($session->hasFlash('success')){
    // 存在,判断后,自动删除
}

// 获取所有的 flash 信息
$data = $session->getAllFlashes();

// 移除 'success' flash 信息
$session->removeFlash('success');

// 移除所有的 flash 信息
$session->removeAllFlash();
// 首先,加载session组件
$session = Yii::$app->session();

// 设置名为'success' flash 信息
$session->setFlash('success','This is success!');

// 在名称为"success"的flash信息增加数据
$session->addFlash('success','I love you!');
$session->addFlash('success','I miss you!');
$session->addFlash('success','I want you!');

// 获取并显示'success' flash 信息
$data = $session->getFlash('success');
var_dump($data); 
/* 会以数组的方式呈现
array(4) { 
    [0]=> string(16) "This is success!" 
    [1]=> string(11) "I love you!" 
    [2]=> string(11) "I miss you!" 
    [3]=> string(11) "I want you!" 
}*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值