📅  最后修改于: 2023-12-03 14:48:40.998000             🧑  作者: Mango
在 Yii1 应用程序中,setFlash
方法可用于将临时消息存储在会话中,以便在页面重定向后显示。这对于诸如成功消息、错误消息、警告和其他通知非常有用。
要使用 setFlash
,请遵循以下步骤:
在控制器中使用 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,
));
}
在视图文件中使用 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
,您可以更轻松地向用户提供关于应用程序状态的通知,让他们知道他们的操作已成功完成或者需要做出调整。