我可以从cakephp中的视图重定向吗
我在我的主页上有一个按钮,它会导致一个注册/登录页面。注册/登录页面只是views/pages/signup.ctp中的一个页面,因此没有与之关联的操作 我希望这样,如果用户在主页上时已经登录,并且他们单击我的注册/登录按钮,而不是将他们带到注册/登录页面,则会将他们重定向到另一个操作。但是由于signip/login页面没有操作,我不知道在哪里进行检查和重定向。是否有办法检查是否有人在signup.ctp视图中登录?然后从那里重定向他们我可以从cakephp中的视图重定向吗,php,cakephp,redirect,view,Php,Cakephp,Redirect,View,我在我的主页上有一个按钮,它会导致一个注册/登录页面。注册/登录页面只是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']);
}
}