我可以从cakephp中的视图重定向

时间:2011-04-06 16:42:51

标签: php cakephp redirect view

我的主页上有一个按钮,可以显示注册/登录页面。注册/登录页面只是views / pages / signup.ctp中的一个页面,因此没有与之关联的操作。

我希望如此,如果用户在主页上已登录并且他们单击我的注册/登录按钮,而不是将他们带到注册/登录页面,则会将其重定向到另一个操作。但由于signip / login页面没有动作,我不知道在哪里进行检查和重定向。有没有办法检查登录signup.ctp视图的人员?并从那里重定向他们?

这可能离现实只有几英里,但我很困惑。任何帮助赞赏。干杯:)

5 个答案:

答案 0 :(得分:0)

为注册创建操作...您可以在那里进行验证。我不认为将重定向放在视图中是一种好习惯。您可以将操作放在主页控制器中,例如......

即使将重定向放在视图中也很漂亮,您需要设置一个变量(在操作中)以检查用户是否已登录。 :)

答案 1 :(得分:0)

您可以在主页中为该按钮添加不同的链接..

即。根据用户的状态(登录与否),您将选择与按钮关联的链接..

我不知道您是否使用Auth组件..
如果是这样,在您的主页模板中,您可以执行以下操作:

<?php
  if ($session.read('Auth.User')) {
    // the user is logged in
    // put the link to the other action
  }
  else {
    // the user isn't logged in
    // put the link to the signup/login page
  }
?>
这样,您就不需要重定向用户......

希望这会有所帮助..

祝你的发展好运......

答案 2 :(得分:0)

在ExampleController中针对特定视图执行此操作,例如“example.ctp”

public function example(){
   if ($session.read('Auth.User')) {
       this->redirect(['action' => 'exampleview']);
   }
}

希望它能解决你的目的。

答案 3 :(得分:-1)

您可以使用

header ("Location: ".$this->Html->url('/'));

答案 4 :(得分:-1)

您也可以使用

header ("Location: ".$this->Html->url(array('controller'=>'Home','action'=>'index')));

在cakephp中使用控制器和动作