thinkphp 模型关联之关联统计

官方文档地址:https://www.kancloud.cn/manual/thinkphp5/265566

有些时候,并不需要获取关联数据,而只是希望获取关联数据的统计(关联统计仅针对一对多或者多对多的关联关系),这个时候可以使用withCount方法进行制定关联的统计。

应用场景:如查询文章列表时,我们需要统计每篇文章的评论数量。

thinkphp 模型关联之关联统计_第1张图片
image.png

涉及到的表:
主要字段
news id、 title、content
news_comments id、 news_id、content
以前我的lowb作法
// 文章列表
$list = Db::name('news')->select();
foreach($list  as $k => $v){
      //  循环查询 文章评论数
     $list[$k]['comment_num']  =  Db::name("news_comments")->where("news_id",$v["id"])->count();   // 
}
dump($list);    
现在使用模型方法后
// 文章列表
$list = model('news')->withCount('newscomments')->select();     
dump($list);    
注意:该模型为一对多关联,即一篇文章对应多条评论,在文章模型中应该建立如下关联:
public function newscomments(){
        return $this->hasMany('NewsComments');
}

这样就实现了在查询文章列表时,将每篇文章的评论数关联出来了。

你可能感兴趣的:(thinkphp 模型关联之关联统计)