Php Yii2:为什么setFlash没有';在模块中呈现页面时不工作?
我有一个应用程序,它使用基本模板Yii2。在我的应用程序中,我使用Php Yii2:为什么setFlash没有';在模块中呈现页面时不工作?,php,yii,module,yii2-basic-app,Php,Yii,Module,Yii2 Basic App,我有一个应用程序,它使用基本模板Yii2。在我的应用程序中,我使用Yii::$app->session setFlash在呈现页面时显示消息 当我将我的应用程序放在应用程序中时,它运行良好。但是当我将应用程序移动到模块时,它没有显示消息。名为学校的模块 Yii::$app->session->setFlash('error', "Error!"); return Yii::$app->response->redirect(['school/student/create']
Yii::$app->session setFlash
在呈现页面时显示消息
当我将我的应用程序放在应用程序中时,它运行良好。但是当我将应用程序移动到模块
时,它没有显示消息。名为学校的模块
Yii::$app->session->setFlash('error', "Error!");
return Yii::$app->response->redirect(['school/student/create']);
这是我在我的app/module/school
Yii::$app->session->setFlash('error', "Error!");
return Yii::$app->response->redirect(['school/student/create']);
页面成功返回到学校/学生/创建
页面,但未显示消息
当我将应用程序放入app
Yii::$app->session->setFlash('error', "Error!");
return Yii::$app->response->redirect(['create']);
上面的代码成功返回到页面student/create
,并显示消息
这是我的应用程序目录结构:
--school
--assets
--commands
--config
--controllers
--file
--mail
--models
--modules //this the module
--school
--controllers
--models
--search
--views
--Module.php
--runtime
--test
--vendor
--views
--web
.....
有人知道为什么会这样吗?我该如何解决这个问题?
任何帮助都将不胜感激,谢谢:)
编辑:
这是代码:
app/modules/school/views/student/_form.php
您没有代码行在模块中呈现会话闪存消息。要测试它,请在app/modules/school/view/student/create.php中添加以下代码:
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model backend\models\Student */
$this->title = 'Student';
?>
<?php if (Yii::$app->session->hasFlash('success')): ?>
<div class="alert alert-success">
<?= Yii::$app->session->getFlash('success'); ?>
</div>
<?php endif; ?>
<?php if (Yii::$app->session->hasFlash('warning')): ?>
<div class="alert alert-warning">
<?= Yii::$app->session->getFlash('warning'); ?>
</div>
<?php endif; ?>
<?php if (Yii::$app->session->hasFlash('error')): ?>
<div class="alert alert-danger">
<?= Yii::$app->session->getFlash('error'); ?>
</div>
<?php endif; ?>
<div class="title">
<?= Html::encode($this->title) ?>
</div>
<?=
$this->render('_form', [
'model' => $model,
])
?>
我建议在布局模板(app/views/layouts/main.php)中的小部件和呈现小部件处添加以下代码,或者在没有小部件的布局模板中添加以下代码:
<?php if (Yii::$app->session->hasFlash('success')): ?>
<div class="alert alert-success">
<?= Yii::$app->session->getFlash('success'); ?>
</div>
<?php endif; ?>
<?php if (Yii::$app->session->hasFlash('warning')): ?>
<div class="alert alert-warning">
<?= Yii::$app->session->getFlash('warning'); ?>
</div>
<?php endif; ?>
<?php if (Yii::$app->session->hasFlash('error')): ?>
<div class="alert alert-danger">
<?= Yii::$app->session->getFlash('error'); ?>
</div>
<?php endif; ?>
更新您的代码并显示视图代码。。请..包括小部件
您是否将flash消息呈现到学校/学生/创建中view@scaisEdge,您是指我显示消息的页面代码?@Blackjack是您显示消息的页面代码(viiew)message@scaisEdge,完成。勾选:)
<?php if (Yii::$app->session->hasFlash('success')): ?>
<div class="alert alert-success">
<?= Yii::$app->session->getFlash('success'); ?>
</div>
<?php endif; ?>
<?php if (Yii::$app->session->hasFlash('warning')): ?>
<div class="alert alert-warning">
<?= Yii::$app->session->getFlash('warning'); ?>
</div>
<?php endif; ?>
<?php if (Yii::$app->session->hasFlash('error')): ?>
<div class="alert alert-danger">
<?= Yii::$app->session->getFlash('error'); ?>
</div>
<?php endif; ?>