如何在cakephp中提示警告框?

时间:2011-09-24 10:09:21

标签: php cakephp

<?php $this->redirect(array('controller' => 'Users', 'action' => 'login', ));

我想重定向并提示并提醒您说您的注册成功。

我应该如何修改此代码?

2 个答案:

答案 0 :(得分:5)

您可以使用$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 Page

答案 1 :(得分:1)

您无法同时使用$this->redirect()显示内容和重定向,因为它使用http标头进行重定向。您必须在目标页面上显示消息,或者使用JavaScript进行重定向。

您可以在保存用户数据($this->Session->write( 'newUser', 1 ))的同时保存会话变量,并在登录表单中检查变量。如果设置了变量,则显示警告框并清除变量。

另一种方法是在链接中使用一个额外的参数,告诉登录页面它应该显示警报(users / login / newUser:1)。缺点是,如果用户在注册后立即为该页面添加书签,则每次访问该页面时都会看到该消息。

如果您显示警报然后使用JavaScript而不是标题重定向,它当然只有在用户启用了JS时才有效,所以在这种情况下,您还应该提供一个指向登录页面的可点击链接。