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

问题描述 投票:0回答:5

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

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

这可能与现实相去甚远,但我很困惑。任何帮助表示赞赏。干杯:)

php cakephp redirect view
5个回答
0
投票

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

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


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
  }
?>

这样,您将不需要重定向用户...

希望这有帮助..

祝您发展顺利...


0
投票

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

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

希望它能解决您的目的。


-1
投票

你可以使用

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

-1
投票

您也可以使用

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

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

© www.soinside.com 2019 - 2024. All rights reserved.