我正在尝试使用以下代码在Yii中设置一些会话变量:
$session=new CHttpSession;
$session->open() ;
$session->setSessionName('My Session') ;
$session['sleep'] = 0 ;
$session['attempts'] = 0 ;
$session->writeSession('sleep','0') ;
$session['ip'] = $this->get_ip_address() ; $session->close() ; var_dump($session,$session['ip']) ;
但是,我无法设置上面的会话变量,转储有以下结果:
object(CHttpSession)#17 (5) { ["autoStart"]=> bool(true) ["behaviors"]=> array(0) { } ["_initialized":"CApplicationComponent":private]=> bool(false) ["_e":"CComponent":private]=> NULL ["_m":"CComponent":private]=> NULL } string(3) "::1"
它认为$ session和$ session ['ip']是两个完全不同的变量。有人可以帮我解决这个问题吗?
答案 0 :(得分:27)
我以另一种方式使用Yii下的会话,我使用app()变量下的全局会话变量。所以你可以存储这样的值:
Yii::app()->session['sleep'] = "value";
你可以得到这样的价值:
$sleep = Yii::app()->session['sleep'];
最后你可以像这样删除它:
unset(Yii::app()->session['sleep']);
这样您就可以在代码中的任何位置访问它们。我建议你阅读这篇文章:http://www.larryullman.com/2011/05/03/using-sessions-with-the-yii-framework/它包含你需要的所有信息。
答案 1 :(得分:3)
删除yii中的会话变量...
请使用此实际格式。
Yii::app()->session->remove('session_name');
http://www.yiiframework.com/doc/api/1.1/CHttpSession#remove-detail
答案 2 :(得分:-1)
$session = new \yii\web\Session(); $session->open(); $session['account_id'] = $id; $session['account_name'] = $name;