Suche…


Sitzung in yii2

Sitzungsklasse importieren

use  yii\web\Session;

Sitzung erstellen

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

Speichern Sie den Wert in der Sitzungsvariablen.

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

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

Rufen Sie den Wert aus der Sitzungsvariablen ab.

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

Entfernen Sie die Sitzungsvariable

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

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

Entfernen Sie alle Sitzungsvariablen

$session->removeAll();

Überprüfen Sie die Sitzungsvariable

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

Session Flash

Sitzungsblitz einstellen

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

Session-Flash abrufen

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

Überprüfen Sie den Sitzungsblitz

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

Sitzungsblitz entfernen

$session->removeFlash('error');

Entfernen Sie alle Session-Flash-Variablen

$session->removeAllFlashes();

Sitzungsvariable direkt verwenden

Sitzungsvariable setzen und abrufen

\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');

Erstellen und Bearbeiten von Sitzungsvariablen, die Arrays sind

Speichern Sie die Sitzungsvariable als Variable.

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

$sess = $session['keys'];

Erstellen oder aktualisieren Sie dann den gewünschten Array-Wert

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

Speichern Sie schließlich in die Sitzungsvariable

$session['keys'] = $sess

Erinnern Sie sich an die URL, um sie später erneut aufzurufen

Anwendungsfall: Erinnern Sie sich an die aktuelle URL, zu der Sie zurückkehren möchten, nachdem Sie einen neuen Datensatz in einem anderen (zugehörigen) Controller hinzugefügt haben. Erstellen Sie beispielsweise einen neuen Kontakt, den Sie zu einer bearbeiteten Rechnung hinzufügen möchten.

InvoiceController / actionUpdate:

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

ContactController / actionCreate:

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

Sie können die gespeicherte URL zurücksetzen, wenn Sie fertig sind:

InvoiceController / actionUpdate:

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

Der Schlüsselname - in diesem Beispiel returnInvoice - ist optional.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow