1

我希望能够在我的 default.ctp 视图中使用 cakephp 显示用户的用户名。使用 authComponent 我知道我可以查找用户 ID,但是如何使用它从用户表中查找用户名?我习惯于从控制器执行此操作,我不确定如何在视图中执行此操作。

users table
userid |  username   
4

3 回答 3

2

如果您已经知道如何在控制器中执行此操作 - 那么您已经完成了 99% 的战斗。您只需要将在控制器中检索到的用户传递给视图。

在您的控制器中:

$user = $this->User->read(null, $this->Auth->user('id'));
$this->set('user', $user);

在您看来:

<?php echo $user['User']['username']; ?>

这是非常基本的蛋糕材料,你应该多花点时间在手册上:)

于 2012-08-09T22:11:28.053 回答
1

我不熟悉 CakePHP。但是在任何 MVC 框架中,您都不应该您的视图中访问数据库。处理这个问题的正确方法是让Controller告诉View要显示哪些数据(通常来自Model)。

有关 CakePHP 中的 MVC 的更多信息,请查看此处

于 2012-08-09T22:04:43.450 回答
0

从 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');
于 2018-09-17T00:08:28.740 回答