Laravel查询构建器/ Eloquent批量更新使用当前查询中的数据

时间:2017-08-03 16:07:47

标签: php laravel eloquent laravel-query-builder

我喜欢这样做Pseudocode

UPDATE `table` SET `path`=REPLACE('pathpath','other',`path`) WHERE `ready_to_publish`=1

但我想使用Eloquent / Query构建器。我知道存在DB::raw并且我可以直接设置但应用程序必须支持许多RDBMS类型并且使用查询构建器很舒服。

我知道我可以在2个查询中完成它

1获取所有id,即PHP中的ready_to_publish为1的路径 2.使用链中的所有数据构建更新查询。

我的问题是,在纯SQL中的一个查询中是否可行。

提前感谢任何提示。

1 个答案:

答案 0 :(得分:0)

你可以这样做,

Table::where('ready_to_publish',1)->update(['pathpath',$newpath]);

您需要在模型中将pathpath定义为可填写的,

protected $fillable = ['pathpath'];