2011-05-09 69 views
2

我已经阅读了CakePHP Book,您可以使用元素定义您自己的自定义setFlash消息......但是我会将内容放入元素中,以及如何传递不同的内容。CakePHP自定义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,然后又传递一个额外的类如果需要依赖于一种消息并且还显示不同的内容,诸如只是段落或标题和段落。

任何人都可以帮忙吗?由于

回答

3

您可以有两个要素:

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'); 
+0

如果我想从setFlash调整这一切,因为我可能要动态地创建新的类,添加多个段落和/或更改标题。 – Cameron 2011-05-09 15:26:54

+0

检查编辑答案 – mentalic 2011-05-09 15:39:22