我查看了cakephp 2.5.4关于自定义flash消息的文档,以及其他一些关于如何制作但不能正常工作的教程
我在elements文件夹下有error.ctp和success.ctp error.ctp
<div id="error-flash">
<?php echo h($message); ?>
</div>
success.ctp
<div id="success-flash">
<?php echo h($message); ?>
</div>
在控制器中我称它们为
$this->Session->setFlash(__(' file successfully uploaded.','success',array('class'=>"flash_msg_ok")));
$this->Session->setFlash(__('Upload Failed','error',
array("class" => "flash_msg_error")));
我的chrome开发人员工具仍显示默认的Flash生成。 它没有呈现元素或应用指定的类
我也试过这个
$this->Session->setFlash('success','default',array('class'=> 'success'))
仍然没有。
值得注意的是,我正在使用页面的自定义布局和CSS。 我在这里失踪了什么?
答案 0 :(得分:0)
有几个问题..
首先,您不小心将其他函数变量放在翻译字符串中。您可以按如下方式修复呼叫(注意结束括号移动到消息字符串的结尾):
$this->Session->setFlash(__(' file successfully uploaded.'),'success',array('class'=>"flash_msg_ok"));
$this->Session->setFlash(__('Upload Failed'),'error',
array("class" => "flash_msg_error"));
其次,您需要将该类添加到自定义错误元素文件中(cakephp文档忽略了这一点!)。例如:
<div id="error-flash" class="<?php echo $class; ?>">
<?php echo h($message); ?>
</div>
希望有所帮助!