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

mefy6pfw  于 2022-11-11  发布在  PHP
关注(0)|答案(5)|浏览(175)

我的主页上有一个按钮,它会指向一个注册/登录页面。注册/登录页面只是views/pages/signup.ctp中的一个页面,因此没有与之相关的操作。
我希望这样,如果用户已经登录时,他们在主页上,他们点击我的注册/登录按钮,而不是把他们带到注册/登录页面,它重定向到另一个动作.但由于signip/登录页面没有一个动作,我不知道在哪里做检查和重定向.有没有一种方法来检查,如果一个人登录在signup.ctp视图?并从那里重定向他们?
这可能离现实有几英里远,但我很困惑。任何帮助都很感激。干杯:)

hmmo2u0o

hmmo2u0o1#

创建一个注册动作...你可以在那里进行验证。我不认为把重定向放在视图中是一个好的做法。你可以把动作放在主页控制器中,例如...
即使把重定向放在视图中很漂亮,你也需要设置一个变量(在操作中)来检查用户是否登录。:)

rkue9o1l

rkue9o1l2#

您可以在主页中为该按钮添加其他链接。
即,根据用户的状态(登录或未登录),您将选择要与按钮关联的链接。
我不知道您是否正在使用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
  }
?>

这样,您就不需要重定向用户...
希望这对你有帮助..
祝你发展顺利。

vjrehmav

vjrehmav3#

在ExampleController中为特定视图(如“example.ctp”)执行此操作

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

希望它能解决你的目的。

hs1rzwqc

hs1rzwqc4#

您可以使用

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

r6vfmomb5#

您也可以使用

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

用于在cakephp中使用控制器和操作

相关问题