Yii - Using Flash Data



Yii provides a concept of flash data. Flash data is a session data which −

  • Is set in one request.
  • Will only be available on the next request.
  • Will be automatically deleted afterwards.

Step 1 − Add an actionShowFlash method to the SiteController.

public function actionShowFlash() {
   $session = Yii::$app->session;
   // set a flash message named as "greeting"
   $session->setFlash('greeting', 'Hello user!');
   return $this->render('showflash');
}

Step 2 − Inside the views/site folder, create a View file called showflash.php.

<?php
   use yii\bootstrap\Alert;
   echo Alert::widget([
      'options' => ['class' => 'alert-info'],
      'body' => Yii::$app->session->getFlash('greeting'),
   ]);
?>

Step 3 − When you type http://localhost:8080/index.php?r=site/show-flash in the address bar of the web browser, you will see the following.

showflash php file

Yii also provides the following session classes −

  • yii\web\CacheSession − Stores session information in a cache.

  • yii\web\DbSession − Stores session information in a database.

  • yii\mongodb\Session − Stores session information in a MongoDB.

  • yii\redis\Session − Stores session information using redis database.

Advertisements