如何在CakePHP的视图中通过它的id获取用户名?

时间:2014-09-20 22:14:41

标签: cakephp

这是我的代码,其中在posts数组中有一个user_id键,但我想显示用户名而不是它的id。我在哪里可以编写像findUserNameById($ id)这样的函数,并在视图中调用它。

<table>
<tr><td>Sr. No.</td><td>User</td><td>Post</td></tr>
<?php
    $counter = 1;
    foreach($topic['Post'] as $post) {
        echo "<tr><td>".$counter."</td><td>".$post['user_id']."</td><td>".$post['body']."</td></tr>";
        $counter++;
    }
?>
</table>

这是我的阵列:

Array
(
    [Topic] => Array
        (
            [id] => 1
            [user_id] => 0
            [title] => Some title
            [visible] => 1
            [created] => 2014-09-20 02:03:42
            [modified] => 2014-09-20 22:30:45
        )

    [User] => Array
        (
            [id] => 
            [username] => 
            [password] => 
            [full_name] => 
            [role] => 
            [created] => 
            [modified] => 
        )

    [Post] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [topic_id] => 1
                    [user_id] => 0
                    [body] => CakePHP 1
                    [created] => 2014-09-20 02:08:51
                    [modified] => 2014-09-20 02:08:51
                )

            [1] => Array
                (
                    [id] => 2
                    [topic_id] => 1
                    [user_id] => 0
                    [body] => CakePHP 2
                    [created] => 2014-09-20 02:08:51
                    [modified] => 2014-09-20 02:08:51
                )

        )

)

该主题的用户有关键但在帖子中不可用,但我有id。

1 个答案:

答案 0 :(得分:1)

您在User模型中编写了类似的函数(,即胖模型,瘦模式控制器模式)。

然而,由于已经有field方法可以满足您的需求,因此这样做太过分了。

然后在控制器中调用您的方法,并通过set

将数据发送到视图