Yii: $ _SESSION не определено, но сессия Yii :: app () -> работает

Я включил сеанс в моем приложении, как это (в config.php, components раздел):

'session' => array(
'class' => 'system.web.CDbHttpSession',
'connectionID' => 'db',
'timeout' => 86400,
'sessionName' => 'SOMEABSTRACT_PHPSESSID',
),

В UserIdentity Я пытаюсь сделать это:

$_SESSION['userid'] = $model->id;

Это означает, что я установлю этот новый сеанс после входа в систему моего пользователя. Но когда я пытаюсь получить доступ к $_SESSION['userid'] или просто $_SESSION — для чтения — я получаю это исключение:

Undefined variable: _SESSION

Это способ, которым я пытаюсь получить доступ к этому массиву сеанса:

echo '<pre>';
die(var_dump($_SESSION, $_SESSION['userid']));

У меня нет никаких подсказок по этому поводу, поэтому мои два простых вопроса по этому вопросу:

  1. Почему это происходит только тогда, когда сессии Yii включены и autoStart => true?
  2. Как это исправить?

PS Мне это нужно для интеграции CometChat с фреймворком Yii.

2

Решение

Вы можете иметь @session_start();, Это подавит предупреждения, если сеанс уже запущен, а также установит переменную следующим образом Yii::app()->session['userid'] = $model->id; и получить то же самое с Yii::app()->session['userid'] везде, где это требуется.
Также вы можете настроить зарегистрированного пользователя таким образом после начала сессии

 $this->_id=$model->id;
$this->setState('title', $model->username);
$this->setState('role', $model->role);

Выше приведены переменные по умолчанию в yii для зарегистрированных пользователей. Для создания новой записи пользователя в сеансе вы можете иметь это Yii::app()->session['variablename']

2

Другие решения

Попробуйте вот так, в вашем UserIdentity.php

//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'];
0