tklustig
tklustig

Reputation: 503

Yii::$app->session->setFlash() is not working

Following code in SiteController works fine with echo, but not with yii-method setflash(). Maybe, I have to reconfigure my config-file(main-local.php)? Any other ideas how to keep setflash() doing its job?

   public function actionScript() { //A new method, programmed by Thomas Kipp
        $model = new myScriptForm();
        $fileName = 'file';
        $uploadPath = Yii::getAlias('@uploading');

        if (isset($_FILES[$fileName])) {
            $file = \yii\web\UploadedFile::getInstanceByName($fileName);

            if ($file->saveAs($uploadPath . '/' . $file->name)) {
                echo"<script>alert('Hallo');</script>";
                //echo \yii\helpers\Json::encode($file);
            }
        }
        if ($model->load(Yii::$app->request->post()) && $model->validate()) {
            $model->fileImage = UploadedFile::getInstance($model, 'fileImage');
            $model->avatar = UploadedFile::getInstances($model, 'avatar');
            if ($model->fileImage) {
                Yii::$app->session->setFlash('success', 'File has been uploaded');
                echo "<font size='4'><br><br><br><center>File <font color='red'> "
                . "$model->fileImage<font color='black'> successfully uploaded."
                . "<br>It's available in folder 'uploadedfiles' </font></font color></center>";
                $model->fileImage->saveAs(Yii::getAlias('@uploadedfilesdir/' . $model->fileImage->baseName . '.' . $model->fileImage->extension));
            } else {
                Yii::$app->session->setFlash('error', 'There has nothing to be uploaded');
                echo"<font size='4'><br><br><br><center>No Upload-file selected.<br>"
                . "Nothing moved into folder 'uploadedfiles'</font></center>";
            }
            if ($model->avatar) {
                $counter = 0;
                foreach ($model->avatar as $avatar) {
                    Yii::$app->session->setFlash('success', 'Avatar has been uploaded');
                    echo "<font size='4'><br><center>File <font color='red'> "
                    . "$avatar<font color='black'> successfully uploaded."
                    . "<br>It's available in folder 'uploadedfiles' </font></font color></center>";
                    $avatar->saveAs(Yii::getAlias('@uploadedfilesdir/' . $avatar->baseName . $counter . '.' . $avatar->extension));
                    $counter++;
                }
            } else {
                Yii::$app->session->setFlash('error', 'There has nothing to be uploaded');
                echo"<font size='4'><br><center>No Upload-file selected.<br>"
                . "Nothing moved into folder 'uploadedfiles' </font></center>";
            }
            return $this->render('myScript', ['model' => $model]);
        } else {
            return $this->render('myScript_Formular', ['model' => $model]);
        }
    }

Upvotes: 2

Views: 2980

Answers (1)

ScaisEdge
ScaisEdge

Reputation: 133400

once you have assign the value with eg:

 Yii::$app->session->setFlash('error', 'There has nothing to be uploaded');

be sure that in your view eg: myScript.php you properly echo the value setted

<?= Yii::$app->session->getFlash('error'); ?>

Upvotes: 4

Related Questions