获取与该用户相关的所有帖子的投票 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()
循环遍历任何组合。
我正在尝试获取用户的 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()
循环遍历任何组合。