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 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

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

8年前 评论

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

8年前 评论

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