美文网首页
thinkphp 模型关联之关联统计

thinkphp 模型关联之关联统计

作者: peterz博客 | 来源:发表于2019-11-14 11:57 被阅读0次

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

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

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

    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 模型关联之关联统计

          本文链接:https://www.haomeiwen.com/subject/qnxrictx.html