0

我将一组对象传递给视图,包括一些外部 ID 到数据库中的其他表。说具有属性“writer_id”的评论对象,该属性指的是用户的 id。

如何从视图中显示用户的数据(例如名称)?

这是控制器的“评论”:

function index() {

    $this->load->model('comment_model');
    $data['comments'] = $this->comment_model->get_comments();
    $this->load->view('comments',$data); }

这是在 comment_model 里面:

function get_comments()
{
    $id = $this->uri->segment(3); // ignore this , it's given
    $q = $this->db->query("SELECT * FROM comments WHERE post_id=$id");

    if ($q->num_rows() > 0 ) {
        foreach ($q->result() as $row){
            $data[] = $row;
        }

        return $data;
    }

}

我可以在视图中使用的只是“writer_id”,并且无法显示他的姓名或任何其他数据。

更新

这是视图文件

    <?php
    if (is_array($comments)){ ?>

    <?php foreach ($comments as $comment) : ?>

    <p>
    <?php echo $comment->text;?> - written by <?php echo $comment->writer_id ?>
    </p>

    <?php endforeach ;?>
    <?php } ?>

这将打印:

bla bla bla - 由 4 编写

它应该在哪里

bla bla bla - 由 John 编写(其 id 为 4,在用户表中)

4

1 回答 1

2

您可以进行简单的连接。

SELECT comments.*, users.name as user_name FROM comments INNER JOIN users ON comments.writer_id = users.user_id WHERE post_id=$id

然后您将在结果数组中拥有 user_name。

于 2013-01-17T14:53:14.677 回答