Страница 1 из 1

Сессии в yii2

Добавлено: 2015.03.31, 10:44
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;
Но в другом экшене теперь пытаюсь получить обратно данные и чтото никак не выходит. Подскажите пожалуйста что не так ? :)

Re: Сессии в yii2

Добавлено: 2015.03.31, 10:59
zabachok
Как пытаетесь получить?
надо: echo Yii::$app->session['A']

Re: Сессии в yii2

Добавлено: 2015.03.31, 11:04
Insolita
лучше echo Yii::$app->session->get('A');

Re: Сессии в yii2

Добавлено: 2015.03.31, 11:05
phpstarter
Ну если в томже экшене делать то да, работает. Но если попробовать получить данные уже в другом экшене то просто
echo Yii::$app->session['A'] уже не работает. может в каждом экшене нужно $session->open(); делать ?

Re: Сессии в yii2

Добавлено: 2015.03.31, 11:06
Insolita
Yii::$app->session->set('A'); Yii::$app->session->get('A'); и не надо ничего открывать\закрывать

Re: Сессии в yii2

Добавлено: 2015.03.31, 11:06
phpstarter
Insolita писал(а):лучше echo Yii::$app->session->get('A');
Попробовал - не получилось :(

Re: Сессии в yii2

Добавлено: 2015.03.31, 11:07
phpstarter
Просто у меня в одном экшене записываются данные, а в другом пытаюсь считать. Точно больше ничего не нужно добавлять ?

Re: Сессии в yii2

Добавлено: 2015.03.31, 11:08
phpstarter

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

Yii::$app->session->set('A')=1; 
Жалуется на орфограцию

Re: Сессии в yii2

Добавлено: 2015.03.31, 11:08
Insolita
Yii::$app->session->set('A',1);

Re: Сессии в yii2

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

Re: Сессии в yii2

Добавлено: 2015.03.31, 11:17
phpstarter
Тоесть загрузилась страничка.
Ajax запрос к экшену N1. тут присваиваю переменной значение

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

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

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

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

Yii::$app->session->get('A'); 
но ничего не получается :(

Re: Сессии в yii2

Добавлено: 2015.03.31, 11:35
phpstarter
Моя ошибка была в другом месте. Большое спасибо, все заработало!

Re: Сессии в yii2

Добавлено: 2016.05.11, 15:53
Woice
phpstarter писал(а):Моя ошибка была в другом месте. Большое спасибо, все заработало!
В каком? У меня такая же проблема!

Re: Сессии в yii2

Добавлено: 2016.05.11, 17:05
zelenin
Woice писал(а):
phpstarter писал(а):Моя ошибка была в другом месте. Большое спасибо, все заработало!
В каком? У меня такая же проблема!
теме больше года. уже все умерли из этой ветки.

Re: Сессии в yii2

Добавлено: 2016.05.11, 18:02
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...

Место на хостинге есть, права на папку сессий - имеются ((. Это же волшебство какое-то ((.

Re: Сессии в yii2

Добавлено: 2016.06.30, 18:10
2vl
то же самое, как работать с сессией?

Re: Сессии в yii2

Добавлено: 2016.06.30, 18:11
zelenin
2vl писал(а):то же самое, как работать с сессией?
что непонятно из документации или из этой ветки?

Re: Сессии в yii2

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

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

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

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

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