Как подсказать окно оповещения в cakephp? - PullRequest
0 голосов
/ 24 сентября 2011
<?php $this->redirect(array('controller' => 'Users', 'action' => 'login', ));

Я хотел бы перенаправить и запросить окно с сообщением о том, что ваша регистрация прошла успешно.

Как мне изменить этот код?

Ответы [ 2 ]

5 голосов
/ 24 сентября 2011

Вы можете использовать $session->setFlash("message");.В вашем макете / представлении используйте $session->flash(); для получения выходных данных.

Пример:

// Controller
$session->setFlash("message");

// View
print $session->flash("flash", array("element" => "alert"));

// views/Elements/alert.ctp
<script type="text/javascript">
    alert("<?php print $message; ?>");
</script>

Подробнее см. this Страница

1 голос
/ 24 сентября 2011

Вы не можете одновременно отображать содержимое и перенаправлять, используя $this->redirect(), потому что для перенаправления используются заголовки http.Вы должны отобразить сообщение либо на целевой странице, либо вместо этого использовать JavaScript для перенаправления.

Вы можете сохранить переменную сеанса одновременно с сохранением пользовательских данных ($this->Session->write( 'newUser', 1 )) и проверить переменную вФорма входа.Если переменная установлена, покажите окно предупреждения и очистите переменную.

Другой способ - использовать дополнительный параметр в ссылке, который сообщает странице входа в систему, что он должен показывать предупреждение (users / login / newUser): 1).Недостатком является то, что если пользователь добавит страницу в закладки сразу после регистрации, он будет видеть сообщение каждый раз, когда посещает страницу.

Если вы показываете предупреждение и затем перенаправляете, используя JavaScript вместо заголовков, это, конечно, работаеттолько если у пользователя включен JS, поэтому в этом случае вы также должны предоставить кликабельную ссылку, ведущую на страницу входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...