php - 更新查询中的计数在 Laravel 中不起作用
问题描述
public function increment($id)
{
$this->model->where("id",'=', $id)->update(['rating'=> DB::raw('count+1')]);
}
我收到以下错误:
SQLSTATE [42S22]:找不到列:“字段列表”中的 1054 列“计数”未知(SQL:更新
news
集rating
= 计数 +1,updated_at
= 2019-04-13 08:12:51,其中id
= 5)
我也试过
->update(['rating'=>'count+1']);
解决方案
您没有告诉查询生成器您正在哪个表上执行查询,因此DB::raw('count+1')
没有任何意义。
您可以尝试像这样使用 eloquent increment 方法:
$this->model->where("id", $id)->increment('rating');
感谢@Tharaka 删除了对 save() 的额外调用。
推荐阅读
- python - 状态帖。姜戈
- nextcloud - 无法将 NextCloud 连接到 OnlyOffice 文档服务器
- javascript - Three.js OrbitControls 从另一个选项卡返回 Chrome 选项卡后似乎中断了
- php - PHP | 从筛选到搜索?
- sql-server-2008 - SQL Server 2008 使用 while 循环填充缺失值
- xml - xsl 排序和编号
- hdf5 - 使用 dask 加载大型数据集
- browser - Visual Studio 2017 将不再在浏览器选项卡中打开网站
- node.js - Mongoose 和 Mongodb 的随机错误:未授权执行命令
- python - 查找 LowCost 路径并打印