使用Laravel5.5 Eloquent Query Builder获取视图,评论,如文章计数

时间:2018-02-26 19:53:09

标签: php sql laravel eloquent

我有三个表,我想与SQL建立关系,但无法做到这一点。 这个概念是为了获得文章记录的观看次数,评论和喜欢的数量。所以我有主要的

文章表

  

arm_articles

文章评论表

  

arm_article_comments,

文章观点表

  

arm_article_views

文章喜欢表

  

arm_article_likes

我不能正常工作

DB::table('arm_articles')
    ->join('arm_article_views', function($join) {
        $join->on('arm_articles.article_id', '=', 'arm_article_views.view_article_id');
    })
    ->join('arm_article_likes', function($join) {
        $join->on('arm_articles.article_id', '=', 'arm_article_likes.liked_article_id');
    })
    ->join('arm_article_comments', function($join) {
        $join->on('arm_articles.article_id', '=', 'arm_article_comments.comment_article_id');
    })->groupBy('arm_articles.article_id')
    ->select('arm_articles.article_topic','arm_articles.article_id')
    ->addSelect(DB::raw('COUNT(arm_article_views.view_article_id) as TotalViews'))
    ->addSelect(DB::raw('COUNT(arm_article_likes.liked_article_id) as TotalLikes'))
    ->addSelect(DB::raw('COUNT(arm_article_comments.comment_article_id) as TotalComments'))
    ->where('arm_articles.article_contributor_id','=',$contributor_id)
    ->get()

此命令不会返回任何错误,而是创建了一个不正确的表。我无法使用

文章表 arm_articles

关键领域

arm_articles.id, arm_articles.article_id, arm_articles.article_contributor_id, arm_articles.article_active

文章查看表 arm_article_views

关键领域

arm_article_views.view_article_id 加入 arm_articles.article_id

文章评论表 arm_article_comments

KEY FIELD

arm_article_comments.comment_article_id 加入 arm_articles.article_id

文章表 arm_article_likes

KEY FIELD

arm_article_likes.liked_article_id 加入 arm_articles.article_id

我希望从我的SQL中形成一个新表,它将会像这样 new table

请协助使用正确的命令以使用正确的数据形成新表,将arm_articles表与arm_article_likes,arm_article_views和arm_article_comments相关联。

问候。

1 个答案:

答案 0 :(得分:0)

您可以建立关系计数的关系。您可以在此处了解如何完成此操作:https://stackoverflow.com/a/43873577/1561929