Php Yii:$\会话未定义,但Yii::app()->;会话工作

Php Yii:$\会话未定义,但Yii::app()->;会话工作,php,session,yii,comet,Php,Session,Yii,Comet,我在我的应用程序中启用了如下会话(在config.php,components部分): 在UserIdentity中,我尝试这样做: $_SESSION['userid'] = $model->id; 这意味着我将在登录用户后设置新会话。但是当我尝试访问$\u会话['userid']或仅访问$\u会话-进行阅读时,我会遇到以下异常: Undefined variable: _SESSION 这是我尝试访问此会话阵列的方式: echo '<pre>'; die(var_dum

我在我的应用程序中启用了如下会话(在
config.php
components
部分):

UserIdentity
中,我尝试这样做:

$_SESSION['userid'] = $model->id;
这意味着我将在登录用户后设置新会话。但是当我尝试访问
$\u会话['userid']
或仅访问
$\u会话
-进行阅读时,我会遇到以下异常:

Undefined variable: _SESSION
这是我尝试访问此会话阵列的方式:

echo '<pre>';
die(var_dump($_SESSION, $_SESSION['userid']));
echo';
die(var_dump($_SESSION,$_SESSION['userid'));
关于这一点我没有任何线索,所以我对这个问题的两个简单问题是:

  • 为什么只有当Yii的会话被启用并且
    autoStart=>true
    时才会发生这种情况
  • 如何解决这个问题

  • PS我需要这个来与Yii框架集成CometChat。

    您可以使用
    @session\u start()。如果it会话已经启动,这将抑制警告,并设置如下变量:
    Yii::app()->session['userid']=$model->idYii::app()。
    此外,您还可以在会话启动后像这样设置登录用户

    //After successfully authentication, create session
    
        Yii::app()->session;
        Yii::app()->session['userid'] = $user->id;
    
    
    //Now you can get anywhere like this - 
    
       echo Yii::app()->session['userid'];
    

    以上是yii中登录用户的默认变量。要在会话中创建新的用户条目,您可以在您的UserIdentity.php中使用此
    Yii::app()->session['variablename']
    像这样尝试


    在配置中,会话自动启动是否为真..?是。当我放置
    session\u start()
    时,我根本没有得到
    $\u session['userid']
    。但是如果我在尝试设置会话时设置了
    session\u start()
    ,我会遇到以下异常:
    会话已经启动-忽略session\u start()
    @NaincyGupta-默认情况下,它是
    true
    。面临相同的问题。告诉我是否找到解决方案。我必须访问Yii项目范围之外的会话变量。这不起作用。@Karadža会话变量在特定项目范围内工作,而不是在外部。登录后,在项目范围内外的两个位置上打印
    echo Yii::app()->user->id
    ,并给出响应,输出是什么?我必须访问Yii项目范围外的会话变量。这行不通。
     $this->_id=$model->id;
     $this->setState('title', $model->username);
     $this->setState('role', $model->role);
    
    //After successfully authentication, create session
    
        Yii::app()->session;
        Yii::app()->session['userid'] = $user->id;
    
    
    //Now you can get anywhere like this - 
    
       echo Yii::app()->session['userid'];