cakephp自定义flash布局错误

时间:2015-07-10 16:02:26

标签: cakephp flash-message

我查看了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。 我在这里失踪了什么?

1 个答案:

答案 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>

希望有所帮助!