yii2
сессия
Поиск…
Сессия в yii2
импортировать класс сеанса
use yii\web\Session;
Создать сеанс
$session = Yii::$app->session;
$session->open(); // open a session
$session->close(); // close a session
Сохраните значение в переменной сеанса.
$session = Yii::$app->session;
$session->set('name', 'stack');
OR
$session['name'] = 'stack';
OR
$_SESSION['name'] = 'stack';
Получите значение из переменной сеанса.
$name = $session->get('name');
OR
$name = $session['name'];
Удалить переменную сеанса
$session->remove('name');
OR
unset($session['name']);
OR
unset($_SESSION['name']);
$session->destroy(); // destroy all session
Удалить все переменные сеанса
$session->removeAll();
Проверка переменной сеанса
$session->has('name')
OR
isset($session['name'])
//both function return boolean value [true or false]
Вспышка сессии
Установка сеансовой вспышки
$session = Yii::$app->session;
$session->setFlash('error', 'Error in login');
Получить сеанс flash
echo $session->getFlash('error');
Проверка всплывающей подсказки
$result = $session->hasFlash('error');
Удаление сеанса
$session->removeFlash('error');
Удалить все временные переменные сеанса
$session->removeAllFlashes();
Непосредственно использовать переменную сеанса
Установить и получить переменную сеанса
\Yii::$app->session->set('name','stack');
\Yii::$app->session->get('name');
Вспышка сессии
\Yii::$app->getSession()->setFlash('flash_msg','Message');
\Yii::$app->getSession()->getFlash('flash_msg');
Создание и редактирование переменных сеанса, которые являются массивами
Сохраните переменную сеанса как переменную.
$session = Yii::$app->session;
$sess = $session['keys'];
Затем создайте или обновите требуемое значение массива
$sess['first'] = 'abc';
И, наконец, сохранить переменную сеанса
$session['keys'] = $sess
Помните URL для повторного просмотра позже.
Случай использования: помните, что текущий URL-адрес возвращается после добавления новой записи в другой (связанный) контроллер, например, создайте новый контакт, чтобы добавить к редактируемому счету.
InvoiceController / actionUpdate:
Url::remember(Url::current(), 'returnInvoice');
ContactController / actionCreate:
if ($model->save()) {
$return = Url::previous('returnInvoice');
if ($return) {
return $this->redirect($return);
}
// ...
}
После того, как вы закончите, вы можете сбросить сохраненный URL:
InvoiceController / actionUpdate:
if ($model->save()) {
Url::remember(null, 'returnInvoice');
// ...
}
Имя ключа - returnInvoice
в этом примере - необязательно.