The values are successfully registered in the database, but the flash values are not displayed on the redirect new page I also saved the log, but nothing is set in the session
main.php
'components' => [
...
'session' => [
'class' => 'yii\web\Session',
'cookieParams' => [
'httpOnly' => true,
'lifetime' => 30 * 24 * 60 * 60,
],
'name' => 'advanced-frontend-rasha',
],
AbcController :
if($model->save()){
$session = Yii::$app->session;
$session->set('step', 'careers/step2');
$session->set('registrationStep2', 2);
$session->setFlash('success', $successMessage);
return $this->redirect(['careers/step2']);
}else{
Yii::$app->session->setFlash('error', $errorMessage);
return $this->render('step1', ['model' => $model]);
}
or
if($model->save()){
Yii::$app->session->set('step', 'careers/step2');
Yii::$app->session->set('registrationStep2', 2);
Yii::$app->session->setFlash('success', $successMessage);
return $this->redirect(['careers/step2']);
}else{
Yii::$app->session->setFlash('error', $errorMessage);
return $this->render('step2', ['model' => $model]);
}
or
if($model->save()){
Yii::$app->getSession()->set('step', 'careers/step2');
Yii::$app->getSession()->set('registrationStep2', 2);
Yii::$app->getSession()->setFlash('success', $successMessage);
return $this->redirect(['careers/step2']);
}else{
Yii::$app->getSession()->setFlash('error', $errorMessage);
return $this->render('step1', ['model' => $model]);
}
View :
<?php if (Yii::$app->session->hasFlash('success')) { ?>
<div class="alert alert-success" role="alert">
<p> <?= Yii::$app->session->getFlash('success') ?></p>
</div>
<?php } ?>
<?php if (Yii::$app->session->hasFlash('error')) { ?>
<div class="alert alert-danger" role="alert">
<p> <?= Yii::$app->session->getFlash("error") ?></p>
</div>
<?php } ?>
$session = Yii::$app->session;
Yii::info('Session name: '.$date->date('Y/m/d H:i') . $session->name, 'session');
Yii::info('Session : '.$date->date('Y/m/d H:i') . $session->get('step'), 'session');
Yii::info('Session value2: '.$date->date('Y/m/d H:i') . $session->get('registrationStep2'), 'session');
Yii::info('All session values2: '.$date->date('Y/m/d H:i') . print_r($session->getAllFlashes(), true), 'session');
app.log
2023-11-24 00:04:05 [::1][40][-][info][session] Session name: advanced-frontend-rasha in C:\xampp\htdocs\rasha\frontend\views\careers\step2.php:28 in C:\xampp\htdocs\rasha\frontend\controllers\CareersController.php:159 2023-11-24 00:04:05 [::1][40][-][info][session] Session value: in C:\xampp\htdocs\rasha\frontend\views\careers\step2.php:39 in C:\xampp\htdocs\rasha\frontend\controllers\CareersController.php:159 2023-11-24 00:04:05 [::1][40][-][info][session] Session value2: in C:\xampp\htdocs\rasha\frontend\views\careers\step2.php:40 in C:\xampp\htdocs\rasha\frontend\controllers\CareersController.php:159 2023-11-24 00:04:05 [::1][40][-][info][session] All session values2: Array ( )
You have to set 3rd parameter for the
setFlash()method, to be able to show message when you redirect like this: