Теряются данные сессии

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Теряются данные сессии

Сообщение an.viktory@gmail.com »

в модели user есть функция переноса данных в сессию:

Код: Выделить всё

public function to_session()
    {
        $session = Yii::$app->session;
        $session->set('last_name', $this->last_name);
        $session->set('first_name', $this->first_name);
        $session->set('city', $this->city);
        $session->set('phone', $this->phone);
        $session->set('user_id', $this->user_id);

    }
отключена проверка

Код: Выделить всё

public function beforeAction($action)
    {
        $this->enableCsrfValidation = false;

        return parent:: beforeAction($action);
    }


При переходе к другому action и controller данные в сессии исчезают ) что я делаю не так ?
Последний раз редактировалось an.viktory@gmail.com 2017.01.26, 13:39, всего редактировалось 1 раз.
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Теряются данные сессии

Сообщение Alexum »

В массив $_SESSION данные добавляются? Как данные считываете?

PS. Метод называете не по фэн-шую.
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Теряются данные сессии

Сообщение an.viktory@gmail.com »

считаваю по феншую)))

$session = Yii::$app->session;

$language = $session->get('language');


но они даже в debug пропадают
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Теряются данные сессии

Сообщение Nex-Otaku »

У меня было похожее.
При открытии странички на frontend, слетала форма на backend.

Причина оказалась в том, что сессия для frontend и backend по сути была общая, а ключ для шифровки cookies был разный (cookieValidationKey в "main-local.php"). Поэтому шифровалось по одному ключу, расшифровывалось по другому ключу, и не совпадало, в итоге все данные слетали.

Проверьте, может поможет. Ну а в целом, тут только отладка спасёт. Что-то настроено неправильно.
Ответить