как установить и отобразить флеш-сообщения в symfony1.4 - PullRequest
3 голосов
/ 06 марта 2012

Я создаю форму входа в систему, в которой я должен установить флэш-сообщение, если вход не удается. Я использовал следующий код для установки флэш-сообщения. В файле 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 ?>

При использовании этого я не могу отображать сообщения об ошибках. Я не знаю, использую ли я правильный код или нет. Любой, пожалуйста, помогите мне ...

Ответы [ 3 ]

9 голосов
/ 06 марта 2012

Не используйте третий параметр в вашем методе setFlash.Это будет работать:

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

См .: http://www.symfony -project.org / api / 1_4 / sfUser # method_setflash

Если для третьего параметра установлено значение false,флэш-сообщение не будет сохранено для перенаправления.

2 голосов
/ 06 марта 2012
setFlash ($name, $value, $persist)

$ persist true, если флэш-память должна сохраняться для следующего запроса (по умолчанию true)

Почему для третьего параметра установлено значение false?

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

И третий параметр по умолчанию true, просто:

$this->getUser()->setFlash('error', 'Invalid User Name or Password');
0 голосов
/ 26 марта 2015

Если вы удаляете флэш-сообщение:

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

Если вы используете успешную страницу или макет, выполните $sf_user->setFlash('error', NULL)

...