2011-01-24 57 views
0

我期待操縱$session->flash()輸出在我的CakePHP的應用程序,目前我有一個顯示Flash和權威性的錯誤消息的非常簡單的缺省實現

<?php 
    $session->flash(); 
    $session->flash('auth'); 
?> 

這會產生一個<div>,其ID和類中包含消息。我想要做的是包裝/替換生成的HTML,特別是使用一些jQuery UI類,但包裝很困難,因爲我無法分辨何時會顯示一條消息,因此我最終得到一個空的樣式錯誤div。我真正需要的包裝工作是檢查$ session-> flash()返回任何東西,但是當用empty()檢查時,'我不能在寫入上下文中使用方法返回值'。

據我所知,生成的HTML是硬編碼進入會話助手!獎勵積分,如果您可以計算出如何獨立更改授權消息和正常閃光消息的類別。

回答

0

在setFlash()上讀取並使用該方法用來定義自己的元素的其他參數。你可以做任何你喜歡的事情。

http://book.cakephp.org/view/400/setFlash

+0

的驗證Flash消息是自動的,但我可以使用`$ this-> Auth-> authError`來設置實際的消息本身,但不能使用它的佈局。 – Dunhamzzz 2011-01-24 14:14:54

+0

沒有它的不是,它使用與其他消息完全相同的代碼,因此可以做同樣的事情。所有將auth消息設置爲正在將它作爲數組(....)寫入Message.auth並使用參數 – dogmatic69 2011-01-26 10:14:15

0

一個變通的解決方案,我發現是設置$session->flash()給一個變量,然後用empty()檢查它,所以我可以在必要時回聲出適當<div>

$flashMessage = $this->flash(); 
$authMessage = $this->flash('auth'); 

..然後檢查每一個是否爲空。當然,我在裏面有一些不必要的html,但就auth消息而言,我認爲這很靈活,因爲我可以得到。