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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow