yii2
Sessie
Zoeken…
Sessie in yii2
Sessieklasse importeren
use yii\web\Session;
Maak een sessie aan
$session = Yii::$app->session;
$session->open(); // open a session
$session->close(); // close a session
Sla de waarde op in sessievariabele.
$session = Yii::$app->session;
$session->set('name', 'stack');
OR
$session['name'] = 'stack';
OR
$_SESSION['name'] = 'stack';
Haal de waarde uit de sessievariabele.
$name = $session->get('name');
OR
$name = $session['name'];
Verwijder de sessievariabele
$session->remove('name');
OR
unset($session['name']);
OR
unset($_SESSION['name']);
$session->destroy(); // destroy all session
Verwijder alle sessievariabelen
$session->removeAll();
Controleer sessie variabele
$session->has('name')
OR
isset($session['name'])
//both function return boolean value [true or false]
Sessie Flash
Stel sessieflits in
$session = Yii::$app->session;
$session->setFlash('error', 'Error in login');
Krijg sessieflits
echo $session->getFlash('error');
Controleer sessieflits
$result = $session->hasFlash('error');
Verwijder sessieflits
$session->removeFlash('error');
Verwijder alle sessieflitsvariabelen
$session->removeAllFlashes();
Gebruik direct sessievariabele
Set en krijg sessievariabele
\Yii::$app->session->set('name','stack');
\Yii::$app->session->get('name');
Sessie flits
\Yii::$app->getSession()->setFlash('flash_msg','Message');
\Yii::$app->getSession()->getFlash('flash_msg');
Sessievariabelen maken en bewerken die arrays zijn
Sla de sessievariabele op als een variabele.
$session = Yii::$app->session;
$sess = $session['keys'];
Maak of update vervolgens de gewenste matrixwaarde
$sess['first'] = 'abc';
En tot slot opslaan in de sessievariabele
$session['keys'] = $sess
Onthoud URL om later opnieuw te bezoeken
Gebruikscasus: onthoud de huidige URL om naar terug te keren na het toevoegen van een nieuw record in een andere (gerelateerde) controller, maak bijvoorbeeld een nieuw contact om toe te voegen aan een factuur die wordt bewerkt.
InvoiceController / actionUpdate:
Url::remember(Url::current(), 'returnInvoice');
ContactController / actieCreëren:
if ($model->save()) {
$return = Url::previous('returnInvoice');
if ($return) {
return $this->redirect($return);
}
// ...
}
U kunt de onthouden URL opnieuw instellen als u klaar bent:
InvoiceController / actionUpdate:
if ($model->save()) {
Url::remember(null, 'returnInvoice');
// ...
}
De sleutelnaam - returnInvoice
in dit voorbeeld - is optioneel.