Сессии в yii2

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Сессии в yii2

Сообщение phpstarter »

Мне надо сохранить 2 переменные в контроллере и затем из разных экшенов получать наних доступ. Одну просто
$_SESSION['A']=1;
А вторую както так
$_SESSION['B'.$_SESSION['A']]=1; (B1)

Почитал мануал вставил в начало

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

use  yii\web\Session;
$session = new Session;
$session->open(); 
потом сделал 

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

Yii::$app->session['A']=1;
Но в другом экшене теперь пытаюсь получить обратно данные и чтото никак не выходит. Подскажите пожалуйста что не так ? :)
Аватара пользователя
zabachok
Сообщения: 522
Зарегистрирован: 2013.12.16, 14:38

Re: Сессии в yii2

Сообщение zabachok »

Как пытаетесь получить?
надо: echo Yii::$app->session['A']
2b||!2b Just read the instructions
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: Сессии в yii2

Сообщение Insolita »

лучше echo Yii::$app->session->get('A');
Последний раз редактировалось Insolita 2015.03.31, 11:05, всего редактировалось 1 раз.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: Сессии в yii2

Сообщение phpstarter »

Ну если в томже экшене делать то да, работает. Но если попробовать получить данные уже в другом экшене то просто
echo Yii::$app->session['A'] уже не работает. может в каждом экшене нужно $session->open(); делать ?
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: Сессии в yii2

Сообщение Insolita »

Yii::$app->session->set('A'); Yii::$app->session->get('A'); и не надо ничего открывать\закрывать
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: Сессии в yii2

Сообщение phpstarter »

Insolita писал(а):лучше echo Yii::$app->session->get('A');
Попробовал - не получилось :(
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: Сессии в yii2

Сообщение phpstarter »

Просто у меня в одном экшене записываются данные, а в другом пытаюсь считать. Точно больше ничего не нужно добавлять ?
Последний раз редактировалось phpstarter 2015.03.31, 11:09, всего редактировалось 1 раз.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: Сессии в yii2

Сообщение phpstarter »

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

Yii::$app->session->set('A')=1; 
Жалуется на орфограцию
Аватара пользователя
Insolita
Сообщения: 788
Зарегистрирован: 2011.06.06, 01:39
Контактная информация:

Re: Сессии в yii2

Сообщение Insolita »

Yii::$app->session->set('A',1);
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: Сессии в yii2

Сообщение phpstarter »

Insolita писал(а):Yii::$app->session->set('A',1);
Внутри одного и тогоже экшена это работает.
Дело в том что попозже я с клиента AJAX-ом обращаюсь к другому экшену данного контроллера. И вот тут пытаюсь считать данные которые никак не считываются :(
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: Сессии в yii2

Сообщение phpstarter »

Тоесть загрузилась страничка.
Ajax запрос к экшену N1. тут присваиваю переменной значение

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

Yii::$app->session->set('A',1); 
Проверяю тамже - все работает.

Далее на клиенте AJAX запросом обращаюсь к экшену N2.
пытаюсь считать

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

Yii::$app->session->get('A'); 
но ничего не получается :(
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: Сессии в yii2

Сообщение phpstarter »

Моя ошибка была в другом месте. Большое спасибо, все заработало!
Woice
Сообщения: 9
Зарегистрирован: 2012.07.26, 11:34

Re: Сессии в yii2

Сообщение Woice »

phpstarter писал(а):Моя ошибка была в другом месте. Большое спасибо, все заработало!
В каком? У меня такая же проблема!
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Сессии в yii2

Сообщение zelenin »

Woice писал(а):
phpstarter писал(а):Моя ошибка была в другом месте. Большое спасибо, все заработало!
В каком? У меня такая же проблема!
теме больше года. уже все умерли из этой ветки.
Woice
Сообщения: 9
Зарегистрирован: 2012.07.26, 11:34

Re: Сессии в yii2

Сообщение Woice »

zelenin писал(а):
Woice писал(а):
phpstarter писал(а):Моя ошибка была в другом месте. Большое спасибо, все заработало!
В каком? У меня такая же проблема!
теме больше года. уже все умерли из этой ветки.
Верю. Но вопрос актуальный )).
В контроллере имеется юс:
use yii\web\Session;
И у меня такая же проблема, как и автора темы, я в одном экшне делаю:

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

$session = Yii::$app->session;
$session->set('userId',$user->id);
 
В этом же экшне могу считать переменную - все ок.

А вот уже аяксом в соседнем экшне пытаюсь считать юзерИд:

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

$session = Yii::$app->session;
$userId = $session->get('userId');
var_dump($userId);
 
Получаю NULL...

Место на хостинге есть, права на папку сессий - имеются ((. Это же волшебство какое-то ((.
2vl
Сообщения: 18
Зарегистрирован: 2010.10.05, 10:38

Re: Сессии в yii2

Сообщение 2vl »

то же самое, как работать с сессией?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Сессии в yii2

Сообщение zelenin »

2vl писал(а):то же самое, как работать с сессией?
что непонятно из документации или из этой ветки?
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: Сессии в yii2

Сообщение phpstarter »

Извините давно не заходил на этот сайт.
Специально проделал еще раз все изпользуя Ваши данные:
В одном контроллере пишем

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

Yii::$app->session->set('userId','A'); 
В другом пишем:

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

$userId = Yii::$app->session->get('userId');
echo "test_".$userId; 
Получаем результат
test_A
Ответить