laravel更新了另一个字段

时间:2016-05-03 02:53:21

标签: php mysql laravel

所有 我正在使用laravel 5,我的代码就像这样

$assign = Assign::where('kh','=',$product->kh)->update(['plan_assign_amount' => 'ROUND(single_sales_rate*'.($skuCounts*2).')']);

所以这很容易,实际上在mysql语句中,我的sql字符串是这样的

update `assign` set `plan_assign_amount` = ROUND(single_sales_rate*18);

但是它无法工作,所以有一种简单的方法吗?或者只使用DB:update()来运行原始sql?

感谢您的帮助;

2 个答案:

答案 0 :(得分:0)

您可以使用DB::statementDB::rawDB::update运行原始数据库查询,或者您可以尝试执行以下操作:

$assign = Assign::where('kh', '=', $product->kh)->first();
$assign->update(['plan_assign_amount' => round($assign->single_sales_rate * $skuCounts * 2)]);

答案 1 :(得分:0)

找到答案是

$assign = DB::table('assign')->where('kh','=',$product->kh)->update(['plan_assign_amount' => DB::raw('ROUND(single_sales_rate*'.($skuCounts*2).')')]);

工作正常!!