CakePHP自定义setFlash

时间:2011-05-09 15:06:16

标签: php cakephp

我已经阅读了CakePHP Book,你可以使用一个元素定义你自己的自定义setFlash消息......但是我会把它放在元素中,我将如何传递不同的内容。

例如,两条不同的消息:

<div id="flashMessage" class="message">
    <div class="content">
        <p>Please correct the errors</p>
    </div>
</div>


<div id="flashMessage" class="announcement message">
    <div class="content">
        <h3>Announcement</h3>
        <p>You have earned a new achievement</p>
    </div>
</div>

因为你可以看到我想要定义一个包装器div和一个内容div,然后如果需要依赖于消息类型并且还显示不同的内容(例如段落或标题),则还要传入一个额外的类。一段。

有人可以帮忙吗?感谢

1 个答案:

答案 0 :(得分:4)

您可以有两个元素:

myflash.ctp

<div id="flashMessage" class="message">
    <div class="content">
        <p><? echo $message ?></p>
    </div>
</div>

announcement.ctp

<div id="flashMessage" class="announcement message">
    <div class="content">
        <h3>Announcement</h3>
        <p><? echo $message ?></p>
    </div>
</div>

然后:

$this->Session->setFlash($message,'myflash or announcement');

一个元素: myflash.ctp

<div id="flashMessage" class="<? echo (isset($myclass)?$myclass.' ':'') ?>message">
 <div class="content">
  <? echo (isset($header)?'<h3>' . $header.'</h3>':'') ?>
   <p><? echo $message ?></p>
 </div>
</div>

并在你的控制器上:

$this->Session->setFlash($message,'myflash',array('myclass'=>'announcement','header'=>'Announcement');