【问题标题】:Count in update query doesn't work in Laravel更新查询中的计数在 Laravel 中不起作用
【发布时间】:2019-09-03 22:10:00
【问题描述】:
public function increment($id)
{
    $this->model->where("id",'=', $id)->update(['rating'=> DB::raw('count+1')]);
}

我收到以下错误:

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

我也试过了

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

【问题讨论】:

    标签: php database laravel


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 哈哈,我上次试过了,但我犯了一个愚蠢的错误,谢谢你,它有效。但在最后一行必须是 update()。谢谢
    • 而且,您不必致电save()。它会自动保存到数据库中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多