2011-06-04 51 views
3

我正在通過「Cake PHP 1.3應用程序開發指南」CH。 1 - 「允許使用用戶名或電子郵件登錄」部分。setFlash被調用後清除會話閃存?

問題在於,當您使用電子郵件登錄時,即使成功,「Auth帳戶」的Flash消息已由Auth組件設置。所以我需要在通過電子郵件成功登錄後在用戶控制器的登錄操作中取消設置該消息。將其設置爲空字符串不起作用,因爲會顯示一個空的橙色條。

有沒有一種方法可以完全取消閃存消息?

謝謝, 約拿

+2

如果登錄正確,則不應輸出該消息。你確定你的代碼是正確的嗎?你可以發佈你寫在你的UserController/AppController引用登錄部分? – linkyndy 2011-06-04 21:05:12

+0

我在書中遇到了同樣的問題,很高興我找到了你的文章! – ActionOwl 2011-12-16 20:05:27

回答

14

要取消快閃消息使用CakePHP 1.3,使用SessionComponent在控制器內:

$this->Session->delete('Message.flash'); 
+0

最佳答案。謝謝@starlocke – 2015-07-23 11:10:04

5

我用這個代替上面的代碼。

$this->Session->delete('Message.auth'); 
0

如果你擔心的消息持續在內存中的會話級後>閃光燈()函數被調用的觀點,那麼你大可不必。在flash()函數中,消息被這個調用清除掉了:

CakeSession::delete('Message.' . $key); 

所以你不需要自己刪除消息。