yii2
Session
Recherche…
Session en yii2
Classe de session d'importation
use yii\web\Session;
Créer une session
$session = Yii::$app->session;
$session->open(); // open a session
$session->close(); // close a session
Stockez la valeur dans la variable de session.
$session = Yii::$app->session;
$session->set('name', 'stack');
OR
$session['name'] = 'stack';
OR
$_SESSION['name'] = 'stack';
Récupère la valeur de la variable de session.
$name = $session->get('name');
OR
$name = $session['name'];
Supprimer la variable de session
$session->remove('name');
OR
unset($session['name']);
OR
unset($_SESSION['name']);
$session->destroy(); // destroy all session
Supprimer toutes les variables de session
$session->removeAll();
Variable de session de vérification
$session->has('name')
OR
isset($session['name'])
//both function return boolean value [true or false]
Session Flash
Définir le flash de session
$session = Yii::$app->session;
$session->setFlash('error', 'Error in login');
Obtenir la session flash
echo $session->getFlash('error');
Vérifiez la session flash
$result = $session->hasFlash('error');
Supprimer le flash de session
$session->removeFlash('error');
Supprimer toutes les variables de session flash
$session->removeAllFlashes();
Utiliser directement la variable de session
Définir et obtenir une variable de session
\Yii::$app->session->set('name','stack');
\Yii::$app->session->get('name');
Session flash
\Yii::$app->getSession()->setFlash('flash_msg','Message');
\Yii::$app->getSession()->getFlash('flash_msg');
Création et modification de variables de session qui sont des tableaux
Enregistrez la variable de session en tant que variable.
$session = Yii::$app->session;
$sess = $session['keys'];
Ensuite, créez ou mettez à jour la valeur de tableau souhaitée
$sess['first'] = 'abc';
Et enfin enregistrer dans la variable de session
$session['keys'] = $sess
Rappelez-vous l'URL à consulter ultérieurement
Cas d'utilisation: rappelez-vous l'URL actuelle à laquelle vous souhaitez revenir après avoir ajouté un nouvel enregistrement dans un autre contrôleur (associé), par exemple créer un nouveau contact à ajouter à une facture en cours d'édition.
InvoiceController / actionUpdate:
Url::remember(Url::current(), 'returnInvoice');
ContactController / actionCréer:
if ($model->save()) {
$return = Url::previous('returnInvoice');
if ($return) {
return $this->redirect($return);
}
// ...
}
Vous pouvez réinitialiser l'URL mémorisée une fois que vous avez terminé:
InvoiceController / actionUpdate:
if ($model->save()) {
Url::remember(null, 'returnInvoice');
// ...
}
Le nom de clé - returnInvoice dans cet exemple - est facultatif.