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
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 2

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

6年前 评论

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

6年前 评论

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