Laravel Update:为现有值添加新值

时间:2018-01-12 11:52:54

标签: laravel laravel-5 laravel-eloquent

我想用现有的值更新查询数据而不进行循环,是否有其他方法可以实现。

例如

Product Table
id  name     version  color
1   iphone    4       white,black
2   iphone    5       white,black

更新方法

Product::where('name', "iphone")->update(['color' => existing.color+ , red]);

Result
id  name     version  color
1   iphone    4       white,black,red
2   iphone    5       white,black,red

谢谢

3 个答案:

答案 0 :(得分:0)

嗯,也许是这样的:

$product = Product::where('name', "iphone")->first();

$product->color .= $newColor;

$product->save();

答案 1 :(得分:0)

您可以使用DB :: raw()。

Product::where('name', "iphone")->update(['color' => DB::raw('CONCAT(color,", red")')]);

答案 2 :(得分:0)

可以通过DB::update(..)完成,例如:

DB::update('UPDATE `products` SET `color`=CONCAT(color,", red") WHERE `name`=?', ['iphone']);

更多信息enter image description here