我希望能够在我的 default.ctp 视图中使用 cakephp 显示用户的用户名。使用 authComponent 我知道我可以查找用户 ID,但是如何使用它从用户表中查找用户名?我习惯于从控制器执行此操作,我不确定如何在视图中执行此操作。
users table
userid | username
如果您已经知道如何在控制器中执行此操作 - 那么您已经完成了 99% 的战斗。您只需要将在控制器中检索到的用户传递给视图。
在您的控制器中:
$user = $this->User->read(null, $this->Auth->user('id'));
$this->set('user', $user);
在您看来:
<?php echo $user['User']['username']; ?>
这是非常基本的蛋糕材料,你应该多花点时间在手册上:)
我不熟悉 CakePHP。但是在任何 MVC 框架中,您都不应该从您的视图中访问数据库。处理这个问题的正确方法是让Controller告诉View要显示哪些数据(通常来自Model)。
有关 CakePHP 中的 MVC 的更多信息,请查看此处。
从 cake 3.6.X 开始,这是我在 cake 3 中使用的示例,也制作了一个注销按钮,用于打印经过身份验证的用户的用户名
<?php
$usert=$this->request->getsession()->read('Auth.User');
//then you can print the 'username' by
echo $user['username'];
?>
在之前的 cake 版本中,这些功能是可用的,但现在有弃用通知:
$usert=$this->request->session()->read('Auth.User');
$usert=$this->Session->read('Auth.User');