Laravel查询构建器根据另一个表中的选择计数更新字段

时间:2015-09-03 15:33:17

标签: laravel

我有一个Post,对于每个帖子,Likes表格中有多个likes。我在total_likes表中创建了一个Posts字段,我想在一个语句中用likes表中的喜欢总数来更新它。我目前有这个:

        DB::table('posts as p')
            ->update(['total_likes' => function($query) {
                $query->select(DB::raw('COUNT(*)'))
                    ->from('likes as l')
                    ->where(DB::raw('p.id = l.post_id'))
                    ->groupBy('l.post_id');
            }]);

但是我收到了一个错误:

  

类Closure的对象无法转换为字符串

我基本上是想跑:

UPDATE posts SET total_likes = (SELECT COUNT(id) FROM likes WHERE likes.post_id = posts.id GROUP BY id);

0 个答案:

没有答案