📜  yii1 set flash (1)

📅  最后修改于: 2023-12-03 14:48:40.998000             🧑  作者: Mango

Yii1 中的 Set Flash

在 Yii1 应用程序中,setFlash 方法可用于将临时消息存储在会话中,以便在页面重定向后显示。这对于诸如成功消息、错误消息、警告和其他通知非常有用。

用法

要使用 setFlash,请遵循以下步骤:

  1. 在控制器中使用 setFlash 方法来设置消息。该方法有两个参数: $key$value$key 是消息类型,如 'success''error'$value 是实际要在视图中显示的消息。

    public function actionCreate()
    {
        $model = new MyModel();
    
        if ($model->save()) {
            Yii::app()->user->setFlash('success', 'My Model saved successfully!');
            $this->redirect(array('index'));
        }
    
        $this->render('create', array(
            'model' => $model,
        ));
    }
    
  2. 在视图文件中使用 getFlash 方法来获取并显示消息。

    <?php if (Yii::app()->user->hasFlash('success')): ?>
        <div class="alert alert-success">
            <?php echo Yii::app()->user->getFlash('success'); ?>
        </div>
    <?php endif; ?>
    

    在该示例中,我们首先检查是否设置了消息,然后将其包装在一个带有 CSS 类的 div 中并显示它。

更多提示

以下是一些使用 setFlash 的附加提示:

  • 如果您需要一次设置多条消息,请使用数组。

    Yii::app()->user->setFlash('success', array(
        'My Model saved successfully!',
        'Other message',
    ));
    
  • 可以为每个消息类型设置消息模板,这样您就可以在整个应用程序中更轻松地使用相同的样式和 HTML。

    Yii::app()->user->setFlash('error', 'My Model could not be saved.');
    Yii::app()->user->setFlash('error', array (
        'title' => 'Error #123',
        'message' => 'My Model could not be saved.',
    ));
    
    // In view file:
    <?php foreach(Yii::app()->user->getFlashes() as $key => $message): ?>
        <?php if(is_array($message)): ?>
            <div class="alert alert-<?php echo $key; ?>">
                <strong><?php echo $message['title']; ?></strong> - <?php echo $message['message']; ?>
            </div>
        <?php else: ?>
            <div class="alert alert-<?php echo $key; ?>">
                <?php echo $message; ?>
            </div>
        <?php endif; ?>
    <?php endforeach; ?>
    

凭借 setFlash,您可以更轻松地向用户提供关于应用程序状态的通知,让他们知道他们的操作已成功完成或者需要做出调整。