我有一个表 users 和 posts ,其中有 user_id 和 post_views 列。 在 post_views 中,我保留了帖子显示次数的信息。
现在,在查询中,我想让 user 的所有帖子都为 post_views 。
我试图做这样的事情:
ConstraintLayout
在我定义的模型中:
User::where(['id'=>$id])->with('posts')->get();
但没有成功。
如何做到?
谢谢
答案 0 :(得分:4)
您可以使用修改后的withCount()
:
public function posts()
{
return $this->hasMany('App\Models\Post');
}
$user = User::withCount(['posts as post_views' => function($query) {
$query->select(DB::raw('sum(post_views)'));
}])->find($id);
// $user->post_views
答案 1 :(得分:0)
您可以使用
User::withCount('posts')->find($id)
在响应中获取ID为$id
和属性posts_count
的用户
我不确定->sum('game_plays','AS','totalVies');
的意图-如果需要,您需要添加更多上下文
仅需添加一些与显示的代码有关的内容:无需使用id末尾使用where + get()进行查询,就可以查询集合。如果要获取单个结果,请在按ID搜索时使用find