yii的session获取数组 [ 新手入门 ]
当seession为数组的时候,如session为
array(
array(array(1,1,2),array(1,2,3)),
array(array(4,5,6),array(7,8,9))
);
时,用yii的CHttpSession的get就不能获取数组里面的指定索引的值了,可以从新定义一个类,继承CHttpSession,重写get方法 如 在protected/components/文件下:
class WHttpSession extends CHttpSession
{
public function get($key,$defaultValue=null)
{
$see = $defaultValue;
$key = explode(".",$key);
if(count($key)>=2)
{
if(isset($_SESSION[$key[0]]))
{
$see =$_SESSION[$key[0]];
$i=0;
foreach($key as $v)
{
$i++;
if($i==1)
continue;
$see = $see[$v];
}
}
}
else
{
if(isset($_SESSION[$key[0]]))
{
$see = $_SESSION[$key[0]];
}
}
// return isset($_SESSION[$key]) ? $_SESSION[$key] : $defaultValue;
return $see;
}
}
在配置文件里面从新配置session
'session'=>array(
'class'=>'application.components.WHttpSession',
),
在控制器里面就可以用了
public function actionTest()
{
$arr = array(
array(array(1,1,2),array(1,2,3)),
array(array(4,5,6),array(7,8,9))
);
Yii::app()->session->add('test',$arr);
$tt = Yii::app()->session->get('test.0.1.1');
print_r($tt);
}
共 2 条回复
w454638 安徽
注册时间:2011-03-23
最后登录:2015-02-25
在线时长:0小时19分
最后登录:2015-02-25
在线时长:0小时19分
- 粉丝0
- 金钱180
- 威望0
- 积分180