Ricerca…


Sessione in yii2

import Session Class

use  yii\web\Session;

Crea una sessione

$session = Yii::$app->session;
$session->open(); // open a session
$session->close();  // close a session

Memorizza il valore nella variabile di sessione.

$session = Yii::$app->session;

$session->set('name', 'stack');
OR
$session['name'] = 'stack';
OR
$_SESSION['name'] = 'stack';

Ottieni il valore dalla variabile di sessione.

$name = $session->get('name');
OR
$name = $session['name'];

Rimuovi la variabile di sessione

$session->remove('name');
OR
unset($session['name']);
OR
unset($_SESSION['name']);

$session->destroy(); // destroy all session 

Rimuovi tutte le variabili di sessione

$session->removeAll();

Controlla la variabile Session

$session->has('name')
OR
isset($session['name'])
//both function return boolean value [true or false]

Flash di sessione

Imposta il flash di sessione

$session = Yii::$app->session;
$session->setFlash('error', 'Error in login');

Ottieni flash di sessione

echo $session->getFlash('error');

Controlla il flash della sessione

$result = $session->hasFlash('error');

Rimuovi il flash di sessione

$session->removeFlash('error');

Rimuovi tutte le variabili flash di sessione

$session->removeAllFlashes();

Utilizza direttamente la variabile di sessione

Imposta e ottieni la variabile di sessione

\Yii::$app->session->set('name','stack');
\Yii::$app->session->get('name');

Flash di sessione

\Yii::$app->getSession()->setFlash('flash_msg','Message');
\Yii::$app->getSession()->getFlash('flash_msg');

Creazione e modifica delle variabili di sessione che sono matrici

Salva la variabile di sessione come variabile.

$session = Yii::$app->session;

$sess = $session['keys'];

Quindi creare o aggiornare il valore dell'array desiderato

$sess['first'] = 'abc';

E infine salvare nella variabile di sessione

$session['keys'] = $sess

Ricorda l'URL da rivedere più tardi

Caso d'uso: ricorda l'URL corrente in cui tornare dopo aver aggiunto un nuovo record in un controller (correlato) diverso, ad esempio crea un nuovo contatto da aggiungere a una fattura modificata.

InvoiceController / actionUpdate:

Url::remember(Url::current(), 'returnInvoice');

ContactController / actionCreate:

if ($model->save()) {
    $return = Url::previous('returnInvoice');
    if ($return) {
        return $this->redirect($return);
    }
    // ...
}

Puoi reimpostare l'URL memorizzato una volta terminato:

InvoiceController / actionUpdate:

if ($model->save()) {
    Url::remember(null, 'returnInvoice');
    // ...
}

Il nome della chiave - returnInvoice in questo esempio - è facoltativo.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow