【发布时间】:2011-03-28 03:55:10
【问题描述】:
我有三个表:(为简单起见,我只显示相关字段)
Articles (id, title, text, author)
Comments (id, article_id, text, author)
Users (user_id, user_type, first_name, last_name, email, password)
在articles表中,由于一个作者可以有多篇文章,所以我只存储users表中作者的user_id,comments表也是如此。
我的问题是,当我在articles_model 中运行ActiveRecord 查询以获取所有文章以及与该文章关联的cmets,然后在我的视图中使用$row->author 回显作者时,我只获得了作者的user_id,即1、2 , 3, 等等。
如何在同一个查询中进入users 表(不同的表)并获取作者实际的first_name 和last_name 并返回?
这是我的代码:
控制器:
$data['articles'] = $this->getArticles();
$this->load->view('articles_view', $data);
function getArticles() {
$this->load->model('articles_model');
$articles = $this->articles_model->getAllArticles();
return $articles;
}
articles_model:
function getAllArticles() {
$this->db->where('id', $this->uri->segment(3));
$query = $this->db->get('articles');
return $query;
}
articles_view:
<?php foreach($articles->result() as $row) { ?>
<?php echo $row->author ?>
<?php echo $row->text ?>
<?php } ?>
我还有很多其他字段,但为了简单起见,这是一个非常精简的版本。
如果我回显上面的$row->author,我只会得到user_id。我需要从users 表中获取用户名。当然,我不必进行另一个单独的函数调用并将更多信息传递到视图中。在这里的任何帮助将不胜感激,实际上会为我打开一个世界:)
【问题讨论】:
-
-
articles和cmets表中的'author'是users表的外键吗?
标签: mysql activerecord codeigniter select join