サーチ…


yii2でのセッション

セッションクラスのインポート

use  yii\web\Session;

セッションを作成する

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

セッション変数に値を格納します。

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

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

セッション変数から値を取得します。

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

セッション変数を削除する

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

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

すべてのセッション変数を削除する

$session->removeAll();

セッション変数をチェックする

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

セッションフラッシュ

セッションフラッシュを設定する

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

セッションフラッシュを取得する

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

セッションフラッシュを確認する

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

セッションフラッシュを削除

$session->removeFlash('error');

すべてのセッションフラッシュ変数を削除する

$session->removeAllFlashes();

セッション変数を直接使用する

セッション変数の設定と取得

\Yii::$app->session->set('name','stack');
\Yii::$app->session->get('name');

セッションフラッシュ

\Yii::$app->getSession()->setFlash('flash_msg','Message');
\Yii::$app->getSession()->getFlash('flash_msg');

配列であるセッション変数の作成と編集

セッション変数を変数として保存します。

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

$sess = $session['keys'];

次に、必要な配列値を作成または更新します

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

最後にセッション変数に保存する

$session['keys'] = $sess

後で再訪するためのURLを記憶する

ユースケース:異なる(関連する)コントローラで新しいレコードを追加した後に戻るには、現在のURLを覚えています。たとえば、編集中の請求書に追加する新しい連絡先を作成します。

InvoiceController / actionUpdate:

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

ContactController / actionCreate:

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

完了したら、思い出したURLをリセットすることができます:

InvoiceController / actionUpdate:

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

キー名(この例ではreturnInvoiceはオプションです。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow