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'] を 2 つの完全に異なる変数として認識します。誰かがこれで私を助けることができますか?

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 = new \yii\web\Session();

$session->open();

$session['account_id'] = $id;

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