我正在尝试获取用户的链接业力(如reddit),并将其显示在他的个人资料页面上。
用户:身份证,姓名,电子邮件,密码..
帖子:id,user_id,title,link,text ...
votes:id,user_id,post_id ......
我需要能够在用户提交的所有帖子的“投票”表格中获得“价值”字段的总和
这就是我现在使用的,快速dd($user)
将检索用户的所有帖子和投票。但是在视图上使用{{ $post->votes->sum('value') }}
将分别检索每个帖子的总和而不是所有帖子的总和。我怎么能这样做?
public function show($user)
{
$user = User::whereName($user)->with('posts.votes')->first();
return view('user/profile')->with('user', $user);
}
请注意,dd($user)
会检索用户的所有帖子及其投票。
视图(显示与用户相关的帖子的次数,这不是应该发生的事情)
@foreach($user->posts as $post)
Link Karma: {{ $post->votes->sum('value') }}
@endforeach
答案 0 :(得分:1)
用户:身份证,姓名,电子邮件,密码..
帖子: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_id
。
App\Post::find($post_id)->votes()->sum('value')
$post_id
,用于App\User::find($user_id)->votes()->sum('value')
个帖子的所有投票总和。
$user_id
用户foreach()
投票的总和。
您可以使用url()
循环浏览任何组合。