首页 > 解决方案 > 更新查询中的计数在 Laravel 中不起作用

问题描述

public function increment($id)
{
    $this->model->where("id",'=', $id)->update(['rating'=> DB::raw('count+1')]);
}

我收到以下错误:

SQLSTATE [42S22]:找不到列:“字段列表”中的 1054 列“计数”未知(SQL:更新newsrating= 计数 +1,updated_at = 2019-04-13 08:12:51,其中id= 5)

我也试过

->update(['rating'=>'count+1']);

标签: phpdatabaselaravel

解决方案


您没有告诉查询生成器您正在哪个表上执行查询,因此DB::raw('count+1')没有任何意义。

您可以尝试像这样使用 eloquent increment 方法:

$this->model->where("id", $id)->increment('rating');

感谢@Tharaka 删除了对 save() 的额外调用。


推荐阅读