0

我正在为 cakephp 编写博客/用户身份验证教程,并尝试添加一些功能来掌握事情的窍门。我现在在这个身份验证页面上 http://book.cakephp.org/2.0/ en/tutorials-and-examples/blog-auth-example/auth.html

我试图仅在用户登录时显示注销链接,仅在用户注销时显示登录链接。我正在尝试遵循这篇文章CakePHP 检查用户是否在视图中登录的建议,但我有点困惑。

编辑-为了确保正确找到我的 authuser,我只需在其中放置一个 echo“test”语句。链接工作正常,但是,当我删除 echo 语句时,即使我已登录,链接也只会显示登录名。我无法弄清楚为什么链接只有在我在元素中回显某些内容时才能正常工作。

所以,在我的帖子/索引页面上,我有以下内容

<?php
if($this->element('authuser') == TRUE){   
?>
    <p><?php echo $this->Html->link('Log In', array('controller'=>'users','action' => 'login')); ?></p>
<?
}
   else{ 
?>
    <p><?php echo $this->Html->link('Log Out', array('controller'=>'users','action' => 'logout')); ?></p>
<?
}
?> 

我的元素 authuser.ctp 包含

<?
 $authuser = AuthComponent::user();

if($authuser){
  RETURN TRUE;
}
 echo "test"; //when this is commented out the link on posts/index only displays login
?>
4

1 回答 1

2

您始终可以通过调用静态方法来查看当前登录的用户

$authUser = AuthComponent::user();

通过这种方式,您可以在任何地方获取当前登录的用户,而不是从操作中传递它。

无论如何,我建议您将此逻辑添加到元素中并重用它。

于 2012-05-26T18:00:30.310 回答