2012-03-06 69 views
3

我正在創建一個登錄窗體,在登錄窗體中,如果登錄失敗,我必須設置一個Flash消息。我已經使用下面的代碼來設置Flash消息。 在此稱爲executeLogin_process如何在symfony1.4中設置和顯示Flash消息

$this->getUser()->setFlash('error', 'Invalid User Name or Password', false); 
$this->redirect('login/index'); 

,並顯示在indexSuccess.php的

<?php if ($sf_user->hasFlash('error')): ?> 
    <div class="flash_error"><?php echo $sf_user->getFlash('error') ?></div> 
<?php endif ?> 

消息通過使用該函數內的actions.class.php我不能夠顯示錯誤messages.i不知道我是否使用正確的代碼。任何人請幫助我...

回答

9

不要在您的setFlash方法上使用第三個參數。
這將工作:

$this->getUser()->setFlash('error', 'Invalid User Name or Password'); 

參見:http://www.symfony-project.org/api/1_4/sfUser#method_setflash

如果第三個參數設置爲false。閃存味精不會持續通過重定向。

+0

謝謝scube。現在,它的工作... – Juice 2012-03-06 10:14:03

+0

不客氣@LimiJerin – scube 2012-03-06 10:18:17

2
setFlash ($name, $value, $persist) 

$堅持真,如果閃光燈必須堅持以下要求 (默認值爲TRUE)

你爲什麼要設置爲false第三個參數?

$this->getUser()->setFlash('error', 'Invalid User Name or Password', true); 

而第三個參數是默認true,所以才:

$this->getUser()->setFlash('error', 'Invalid User Name or Password'); 
+0

謝謝你xdazz現在它的工作原理 – Juice 2012-03-06 10:14:30

0

如果刪除閃存消息:

$this->getUser()->setFlash('error', NULL); 

如果您使用的是成功頁面或佈局,然後做$sf_user->setFlash('error', NULL)

相關問題