2011-05-09 92 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