【问题标题】:problem with flash message in yii2 DbSessionyii2 DbSession 中的 flash 消息问题
【发布时间】:2021-01-01 07:20:34
【问题描述】:

我使用 yii\web\DbSession 类作为会话组件。当我使用 Flash 时,会显示消息但 flash 没有被移除并且在其他页面上再次显示,如果我使用 yii\web\Session 类,问题将得到解决。只有当我使用 DbSession 类时才会出现问题。

我的代码:(在主布局中使用)

<?php
$session = Yii::$app->session;

if($session->hasFlash(‘success’)) {
$msg=$session->getFlash(‘success’);
$this->registerJs("
noty(’".trim($msg)."’,‘success’);
“);
}
if($session->hasFlash(‘error’)) {
$msg=$session->getFlash(‘error’);
$this->registerJs(”
noty(’".trim($msg)."’,‘error’);
");
}
?>

【问题讨论】:

    标签: php mysql session yii2


    【解决方案1】:

    可以使用setFlash() 方法设置Flash 消息

    在您的控制器文件中添加以下代码。

    Yii::$app->session->setFlash('success','Processed succeedy');

    setFlash 方法的第一个参数可以是以下错误、危险、成功、信息、警告之一

    这将决定 Flash 消息的颜色

    对于显示部分,您需要将以下代码放入您的布局文件中-

    <?= common\widgets\Alert::widget() ?>
    

    【讨论】:

    • tnx,但我知道这一点,我在控制器类中定义了它。
    • @Mohamad Mahdi Rezaei,我刚刚编辑了我的答案,请检查一下。如果有帮助,请发表评论?
    • tnx,我之前试过这个小部件,但是这个小部件并没有解决我的问题。我认为问题不在于代码,因为它适用于 php session 类但不适用于 DbSession 类。
    • 检查这个github.com/yiisoft/yii2/issues/12332,可能对你有帮助。
    • 此错误已通过禁用日志组件修复。
    猜你喜欢
    • 2014-10-11
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多