<?php $this->redirect(array('controller' => 'Users', 'action' => 'login', ));
我想重定向并提示并提醒您说您的注册成功。
我应该如何修改此代码?
答案 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时才有效,所以在这种情况下,您还应该提供一个指向登录页面的可点击链接。