2012-12-09 54 views
0

隨着YII Flashes你可以這樣做:如何控制YII閃爍的位置?

Yii::app()->user->setFlash('success', "Data saved!"); 

然而,當閃光出現在頁面上,看起來就像這樣:

<div id="yw1"> 
    <div class="alert in alert-block fade alert-info"><a class="close" data-dismiss="alert">×</a> 
    MESSAGE 
    </div> 
</div> 

如何控制,其中,這是放在哪裏?我沒有看到layouts/main.php中的任何東西來控制它,但它們顯示?

+1

你使用引導程序擴展或類似的東西嗎? – Asgaroth

+0

你是否來過這個@RD? –

回答

4

,除非你打電話給他們,他們也不會在任何地方顯示,在Yii中默認的應用程序一個很好的例子是網站/聯繫觀點:

<?php if(Yii::app()->user->hasFlash('contact')): ?>  
    <div class="flash-success"> 
     <?php echo Yii::app()->user->getFlash('contact'); ?> 
    </div>  
<?php else: ?> 
    ... 

並且閃光燈使用setFlash方法

Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.'); 

一種可能性是設置,有可能是在控制的檢查(protected/components/Controller.php),其中有人可能寫了一個init()函數來檢查它們。這將在每個控制器/動作調用中調用,以便它可能在那裏。

另一種可能性是,不管是誰創建的項目編輯在框架文件夾中的閃光法(或可能延長它),你可以看看在那裏,它是在框架/網絡/ auth /中CWebUser.php

但作爲Mik的說,嘗試做項目中的文本搜索getFlash甚至只是閃光

1

我會在你的視圖文件夾中對user-> getFlashes()進行文本搜索。您可以輸出在任何地方的消息與此

<?php 
    foreach(Yii::app()->user->getFlashes() as $key => $message) { 
     echo '<div class="flash-' . $key . '">' . $message . "</div>\n"; 
    } 
?> 
+0

試過了。我無法在任何地方找到它。我認爲YII在某處默認呈現它,使用某些東西,但我不知道是什麼。到目前爲止,我的解決方案是讀取init()中的所有flash,然後自己顯示它們,但這比移動當前佔位符更麻煩。 – coderama

0

您,開發人員,需要顯示閃存的消息。 Yii不會爲你做這件事。

您可以在視圖中顯示它們,如Eskimo和Mik所示,位於您自己選擇的位置。 Yii永遠不會那樣做,因爲Yii不知道你的觀點的佈局。