yii2
Sessione
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.