我想要一个用于更新数据库多行的代码,如下所示:
UPDATE values SET data='{"options":["male","female"],"default":"male"}' where project_id=1 and id=1;
UPDATE values SET data='{"options":["male","female"],"default":"male"}' where project_id=1 and id=2;
UPDATE values SET data='{"options":["male","female"],"default":"male"}' where project_id=1 and id=3;
几个小时后,我可以在laravel框架中得到如下结果:
$values = Value::where('project_id', $id)->get();
$sql = "";
foreach($request->fields as $field) {
if(!empty($field->default)) { //New default value is set
foreach($values as $value) {
$data = json_decode($value->data, true); /**data column as json object in mysql database **/
$data["default"] = $field->default;
$data = json_encode($data);
$sql .= "update ".DB::connection()->getDatabaseName().".values set data='".$data."' where id="."$value->id;";
}
}
}
DB::unprepared($sql);
但是这段代码不是一个好习惯!所以我的问题是
有什么ORM方式可以做得更好吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句