yii2
Sesión
Buscar..
Sesión en yii2
importar clase de sesión
use yii\web\Session;
Crear una sesion
$session = Yii::$app->session;
$session->open(); // open a session
$session->close(); // close a session
Almacenar el valor en la variable de sesión.
$session = Yii::$app->session;
$session->set('name', 'stack');
OR
$session['name'] = 'stack';
OR
$_SESSION['name'] = 'stack';
Obtener el valor de la variable de sesión.
$name = $session->get('name');
OR
$name = $session['name'];
Eliminar la variable de sesión
$session->remove('name');
OR
unset($session['name']);
OR
unset($_SESSION['name']);
$session->destroy(); // destroy all session
Eliminar todas las variables de sesión
$session->removeAll();
Compruebe la variable de sesión
$session->has('name')
OR
isset($session['name'])
//both function return boolean value [true or false]
Flash de sesión
Establecer flash de sesión
$session = Yii::$app->session;
$session->setFlash('error', 'Error in login');
Obtener flash de sesión
echo $session->getFlash('error');
Ver flash de sesión
$result = $session->hasFlash('error');
Eliminar la sesión de flash
$session->removeFlash('error');
Eliminar todas las variables flash de sesión
$session->removeAllFlashes();
Utilizar directamente la variable de sesión.
Establecer y obtener la variable de sesión
\Yii::$app->session->set('name','stack');
\Yii::$app->session->get('name');
Flash de sesión
\Yii::$app->getSession()->setFlash('flash_msg','Message');
\Yii::$app->getSession()->getFlash('flash_msg');
Creando y editando variables de sesión que son matrices.
Guardar la variable de sesión como una variable.
$session = Yii::$app->session;
$sess = $session['keys'];
Luego crea o actualiza el valor de la matriz que deseas
$sess['first'] = 'abc';
Y finalmente guardar en la variable de sesión.
$session['keys'] = $sess
Recordar URL para volver a visitar más tarde
Caso de uso: recuerde la URL actual a la que volver después de agregar un nuevo registro en un controlador diferente (relacionado), por ejemplo, cree un nuevo contacto para agregar a la factura que se está editando.
InvoiceController / actionUpdate:
Url::remember(Url::current(), 'returnInvoice');
ContactController / actionCreate:
if ($model->save()) {
$return = Url::previous('returnInvoice');
if ($return) {
return $this->redirect($return);
}
// ...
}
Puede restablecer la URL recordada una vez que haya terminado:
InvoiceController / actionUpdate:
if ($model->save()) {
Url::remember(null, 'returnInvoice');
// ...
}
El nombre de la clave - returnInvoice
en este ejemplo - es opcional.