9

我正在尝试使用以下代码在 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'] 视为两个完全不同的变量。有人可以帮我解决这个问题吗?

4

3 回答 3

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/它包含您需要的所有信息。

于 2012-11-24T15:30:24.747 回答
3

要删除 yii 中的会话变量...

请使用此实际格式。

Yii::app()->session->remove('session_name');

http://www.yiiframework.com/doc/api/1.1/CHttpSession#remove-detail

于 2014-04-11T07:31:13.353 回答
-1
$session = 新 \yii\web\Session();

$会话->打开();

$session['account_id'] = $id;

$session['account_name'] = $name;
于 2016-07-22T07:07:37.553 回答