Php 拉威尔原始查询问题

Php 拉威尔原始查询问题,php,laravel,eloquent,Php,Laravel,Eloquent,我有两个问题: 问题1: $rows = DB::table(self::TABLE_NAME) ->selectRaw('subforum_id, count(1) as count') ->groupBy('subforum_id') ->get(); 有没有可能用雄辩的语言来写这篇文章 第二点: Topic::where('id', $topicId)->update(['posts_count' => +1

我有两个问题:

问题1:

$rows = DB::table(self::TABLE_NAME)
        ->selectRaw('subforum_id, count(1) as count')
        ->groupBy('subforum_id')
        ->get();
有没有可能用雄辩的语言来写这篇文章

第二点:

 Topic::where('id', $topicId)->update(['posts_count' => +1]);
我需要将+1添加到列posts\u count-如何做到这一点

有人能解释一下生的是什么吗

您可以编写原始查询,如:

DB::table(DB::raw("Update topic set posts_count = posts_count + 1"))

原始查询几乎在每个框架中都可用,它用于在框架方法不足以进行查询的情况下进行复杂查询。

您可以简单地使用它

雄辩地: 主题::查找$topicId->increment'posts_count'

或使用查询生成器执行以下操作:

DB::table('topics')->where(['id'=>$topicId])->increment('posts_count');

根据laravel query builder文档

为什么第一个会导致问题?是否有可能通过Elount+raw实现这一点?是的,你可以。比如:DB::table'users'->selectDB::raw'count*作为user\u count,status'->where'status',1->groupBy'status'->get;