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

我可以从cakephp中的视图重定向吗,php,cakephp,redirect,view,Php,Cakephp,Redirect,View,我在我的主页上有一个按钮,它会导致一个注册/登录页面。注册/登录页面只是views/pages/signup.ctp中的一个页面,因此没有与之关联的操作 我希望这样,如果用户在主页上时已经登录,并且他们单击我的注册/登录按钮,而不是将他们带到注册/登录页面,则会将他们重定向到另一个操作。但是由于signip/login页面没有操作,我不知道在哪里进行检查和重定向。是否有办法检查是否有人在signup.ctp视图中登录?然后从那里重定向他们 这可能离现实很远,但我很困惑。谢谢你的帮助。干杯:)为注

我在我的主页上有一个按钮,它会导致一个注册/登录页面。注册/登录页面只是views/pages/signup.ctp中的一个页面,因此没有与之关联的操作

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


这可能离现实很远,但我很困惑。谢谢你的帮助。干杯:)

为注册创建一个操作。。。你可以在那里进行验证。我认为在视图中放置重定向不是一个好的做法。您可以将该操作放置在主页控制器中,例如


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

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

i、 e.根据用户的状态(登录或未登录),您将选择与按钮关联的链接

我不知道您是否正在使用
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
  }
?>
您可以使用

header ("Location: ".$this->Html->url('/'));
你也可以使用

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

要在cakephp中使用控制器和操作,请在ExampleController中为特定视图(如“example.ctp”)执行此操作

希望它能解决你的问题

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