Laravel雄辩查询与相关表的总和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel雄辩查询与相关表的总和相关的知识,希望对你有一定的参考价值。

我有一个表用户和帖子,其中包含user_id和post_views列。在post_views中,我保留信息显示的帖子数量。

而现在,在查询中我希望用户获得post_views的所有帖子。

我尝试过这样的事情:

User::where(['id'=>$id])->with('posts')->get();

在我定义的模型中:

public function posts()
    {
        return $this->hasMany('AppModelsPost')->sum('post_views','AS','totalViews');
    }

但没有成功。

怎么做?

谢谢

答案

你可以使用修改后的withCount()

public function posts()
{
    return $this->hasMany('AppModelsPost');
}

$user = User::withCount(['posts as post_views' => function($query) {
    $query->select(DB::raw('sum(post_views)'));
}])->find($id);
// $user->post_views
另一答案

您可以使用

User::withCount('posts')->find($id)

在响应中获取id为$idposts_count属性的用户

我不完全确定->sum('game_plays','AS','totalVies');的意图是什么 - 如果你想要这个,你需要添加更多的上下文

关于您显示的代码,只需添加一些内容:无需使用where来查询,最后的get()将使您查询集合。如果您想获得单个结果,请在按ID搜索时使用find

以上是关于Laravel雄辩查询与相关表的总和的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 雄辩的查询与条件下另一个表中的值的总和

带有“LIKE”语句的雄辩查询在 Laravel 6 中不起作用

Laravel 通过属性获得雄辩的查询构建器关系

Laravel 雄辩与查询构建器的优缺点

与3表的雄辩关系

Laravel 雄辩的查询 WhereNotIn 与 WhereNotNull