所以我想要做的是,在我的主要布局中,有一个登录用户的菜单,以及一个不同的匿名用户。
布局将在每个页面上使用,所以我不知道如何做到这一点,正如我所见,Auth组件只能在控制器中使用,如果我不得不这样做会很好只在一个视图中,但对于每个视图,我该怎么做?我是否必须在AppController上做点什么?
我想要做的基本上是
// layout
<?php if(logged): ?>
Welcome <?php echo $user; ?>
<?php else: ?>
Welcom anon, Log in?
<?php endif; ?>
答案 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; ?>