Php CodeIgniter-计数行活动记录接头

Php CodeIgniter-计数行活动记录接头,php,codeigniter,activerecord,Php,Codeigniter,Activerecord,我试图更好地理解CI是如何工作的 这是我的第一张表,app_新闻: 我的第二个是app_news_评论: 我用来显示新闻信息的模型是: public function get_news($where = array()) { return $this->db->select('*') ->from('app_news') ->where($where) ->get() ->result()

我试图更好地理解CI是如何工作的

这是我的第一张表,app_新闻:

我的第二个是app_news_评论:

我用来显示新闻信息的模型是:

public function get_news($where = array()) {
    return $this->db->select('*')
        ->from('app_news')
        ->where($where)
        ->get()
        ->result();
}
我用于统计新闻评论的模型是:

public function count_comment($id_news) {

    return (int) $this->db->where(array('id_news' => $id_news)
        ->count_all_results('app_news_comments');

}

我的第一个解决方案是在我的视图上打印一个foreach,并将count_comment函数放入循环中,以计算我有多少评论,但是我不尊重MVC模式。我该怎么做?

获取该信息的最佳方法是使用以下查询:

SELECT 
app_news.id,
app_news.name,
COUNT(app_news_comments.id)
FROM app_news_comments
JOIN app_news ON app_news_comments.id_news = app_news.id
GROUP BY app_news_comments.id_news
因此,您需要使用Codeigniter上的活动记录创建查询,或者您可以直接添加,因为Codeigniter上的活动记录有一些限制。 但是,您可以在Codeigniter上使用这种方式创建查询:

$this->db->select('[YOUR FIELDS AND COUNT]', FALSE)
         ->from('app_news_comments') .... etc
要直接添加查询,请执行以下操作:

$this->db->query('[QUERY HERE]');
我希望这对你有帮助

$this->db->select('[YOUR FIELDS AND COUNT]', FALSE)
         ->from('app_news_comments') .... etc
$this->db->query('[QUERY HERE]');