我正在创建一个登录表单,如果登录失败,我必须设置一条flash消息。我使用以下代码来设置Flash消息。 在actions.class.php里面有一个名为executeLogin_process的函数
$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 ?>
通过使用此我无法显示错误消息。我不知道我是否使用正确的代码。任何人请帮助我...
答案 0 :(得分:9)
不要在setFlash方法上使用第三个参数 这将有效:
$this->getUser()->setFlash('error', 'Invalid User Name or Password');
请参阅:http://www.symfony-project.org/api/1_4/sfUser#method_setflash
如果第三个参数设置为false。闪存消息不会持续传递重定向。
答案 1 :(得分:2)
setFlash ($name, $value, $persist)
如果闪存必须持续存在于以下请求,则$ persist为true (默认为true)
为什么将第3个参数设置为false
?
$this->getUser()->setFlash('error', 'Invalid User Name or Password', true);
第三个参数是默认true
,所以只需:
$this->getUser()->setFlash('error', 'Invalid User Name or Password');
答案 2 :(得分:0)
如果删除了Flash消息:
$this->getUser()->setFlash('error', NULL);
如果您使用成功页面或布局,请执行$sf_user->setFlash('error', NULL)