我只想显示当前登录的用户。我的Auth部分代码来自2.x cookbook。
问题如下:
我目前有2个用户在系统中。用户A和用户B.用户B是第二个创建的。它不是显示当前用户,而是显示用户B.我认为这是因为用户B是最后创建的,因为如果我创建用户C,它将显示用户C。
这是我的行动:
public function index($id = null) {
$this->set('strains', $this->Strain->find('all'));
$this->loadModel('User');
$users = $this->User->find('all');
$this->set('users', $users);
$this->set('userDataName', $this->Auth->user('id'));
if($this->Auth->user()) {
$this->User->id = $id;
$user = $this->Session->write('user', $this->User->findById($id));
$this->set('user', $user);
}
}
以下是我视图中应该显示当前用户的行:
<?php echo $user['User']['username']; ?>
我已经阅读了几个堆栈问题,但似乎没有人回过头来看这个具体情况。如有必要,我可以完全重写代码。感谢
答案 0 :(得分:1)
显示当前会话用户的用户名的最简单方法是使用auth组件:
in controller
$user = $this->Auth->user(); // returns array with user data or null
$this->set('user', $user);
in view
echo $user['username'];
答案 1 :(得分:0)
以下是我视图中应该显示当前用户的行:
<?php echo $user['User']['username']; ?>
在模板中,用户名取自$user
变量。
public function index($id = null) { ... $this->User->id = $id; $user = $this->Session->write('user', $this->User->findById($id)); $this->set('user', $user); } }
用户变量取决于$id
参数,而不是直接取决于当前登录的用户。
access the logged in user data最简单的方法是使用AuthComponent::user
,即在模板中:
<?php echo AuthComponent::user('username'); ?>