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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow