使用YII Flashes,您可以执行此操作:
Yii::app()->user->setFlash('success', "Data saved!");
但是,当页面上出现闪光灯时,它会显示如下:
<div id="yw1">
<div class="alert in alert-block fade alert-info"><a class="close" data-dismiss="alert">×</a>
MESSAGE
</div>
</div>
如何控制放置它的位置?我没有在layouts / main.php中看到任何控制它的东西,但它们显示了吗?
答案 0 :(得分:4)
除非您正在调用它们,否则它们不会显示在任何地方,Yii默认应用程序中的一个很好的示例是站点/联系人视图:
<?php if(Yii::app()->user->hasFlash('contact')): ?>
<div class="flash-success">
<?php echo Yii::app()->user->getFlash('contact'); ?>
</div>
<?php else: ?>
...
使用setFlash
方法设置闪光灯
Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
可能是控制器根类( protected / components / Controller.php )中可能存在检查,其中有人可能编写了init()
函数来检查它们。这将在每个控制器/动作调用上调用,因此它可能在那里。
另一种可能性是创建项目的人在框架文件夹中编辑了flash方法(或者可能扩展了它),你可以看看它,它位于 framework / web / auth / CWebUser.php
但正如Mik所说,尝试在项目中进行文字搜索 getFlash ,或者只是 flash
答案 1 :(得分:1)
我会在您的views文件夹中对user-&gt; getFlashes()进行文本搜索。您可以使用此
在任何地方输出消息<?php
foreach(Yii::app()->user->getFlashes() as $key => $message) {
echo '<div class="flash-' . $key . '">' . $message . "</div>\n";
}
?>
答案 2 :(得分:0)
开发人员需要显示Flash消息。 Yii不会为你做那件事。
您可以在Eskimo和Mik所显示的视图中显示它们,位于您自己选择的位置。 Yii永远不会那样做,因为Yii不知道您的视图的布局。