Laravel MySQL 中 如何修改一列的值等于另一列?

情景:修改order表的 pay_money 字段值 等于 total_price 字段的值;
问题:

  1. laravel 在模型中对字段类型有验证过滤,所以报错 Incorrect decimal value,如何绕过?
  2. update中的具体写法?
    我的controller
    Order::where(['id' => 1])->update (['order_status' => 5,'pay_money' => 'total_price']);
    报错:
    General error: 1366 Incorrect decimal value: 'total_price' for column 'pay_money' at row 1 (SQL: updateordersetorder_status= 5,pay_money=total_price,updated_at= 2017-04-14 10:44:17 where id = 1
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

Order::where(['id' => 1])->update (['order_status' => 5,'pay_money' => \DB::raw('total_price')]);

7年前 评论

Order::where(['id' => 1])->update (['order_status' => 5,'pay_money' => \DB::raw('total_price')]);

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!