从View获取当前用户

时间:2012-09-16 02:33:05

标签: php cakephp cakephp-2.0

所以我想要做的是,在我的主要布局中,有一个登录用户的菜单,以及一个不同的匿名用户。

布局将在每个页面上使用,所以我不知道如何做到这一点,正如我所见,Auth组件只能在控制器中使用,如果我不得不这样做会很好只在一个视图中,但对于每个视图,我该怎么做?我是否必须在AppController上做点什么?

我想要做的基本上是

// layout
<?php if(logged): ?>
Welcome <?php echo $user; ?>
<?php else: ?>
Welcom anon, Log in?
<?php endif; ?>

1 个答案:

答案 0 :(得分:15)

您也可以使用Auth组件访问视图中的登录用户。来自manual

  

用户登录后,您通常需要一些特定的内容   有关当前用户的信息。您可以访问当前   使用AuthComponent :: user()登录用户。这个方法是静态的,并且   可以在加载AuthComponent后全局使用。您可以   将它作为实例方法或静态方法访问:

// Use anywhere
AuthComponent::user('id')

// From inside a controller
$this->Auth->user('id');

您应该可以执行以下操作:

// layout
<?php if(AuthComponent::user('name')): ?>
    Welcome <?php echo AuthComponent::user('name'); ?>
<?php else: ?>
    Welcom anon, Log in?
<?php endif; ?>