获取与该用户相关的所有帖子的投票 table 中 'value' 的总和

Get the sum of 'value' in the votes table of all posts related to the user

我正在尝试获取用户的 link 业力(就像 reddit 所做的那样)并将其显示在他的个人资料页面上。

user: id, name, email, password..

posts: id, user_id, title, link, text...

votes: id, user_id, post_id...

我需要能够获得用户提交的所有 post 的“投票”table 中“值”字段的总和

这就是我现在使用的,快速 dd($user) 将检索所有 post 和用户投票。但是在视图上使用 {{ $post->votes->sum('value') }} 将分别检索每个 post 的总和,而不是全部检索在一起。我该怎么做?

public function show($user)
    {
        $user = User::whereName($user)->with('posts.votes')->first();
        return view('user/profile')->with('user', $user);
    }

请注意 dd($user) 会检索所有 post 及其用户的投票。

视图(与用户相关的显示次数为 post 次,这不应该发生)

@foreach($user->posts as $post)
   Link Karma: {{ $post->votes->sum('value') }}
@endforeach

users: id, name, email, password..

posts: id, user_id, title, link, text...

votes: id, post_id, value, ...

App\User型号中:

public function posts(){
    return $this->hasMany('App\Post');
}
public function votes(){
    return $this->hasManyThrough('App\Vote','App\Post');
}

App\Post型号中:

public function votes(){
    return $this->hasMany('App\Vote');
}

然后使用: App\User::find($user_id)->post()->find($post_id)->votes()->sum('value') 用户 $user_id 在 post $post_id 上的投票总数。 App\Post::find($post_id)->votes()->sum('value') post $post_id 的所有投票总和。 App\User::find($user_id)->votes()->sum('value') 用户 $user_id.

的所有投票总和

您可以使用 foreach() 循环遍历任何组合。