在Laravel中更新数据库的多行

哈米德·扎马尼(Hamid Zamani)

我想要一个用于更新数据库多行的代码,如下所示:

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方式可以做得更好吗?

维沙尔·塔卡

这是一种简单的方法。

$values = Value::where('project_id', $id)->update(['data'=>$data]);

我从这个连结找到了

希望能帮助到你。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更新数据库中一列中的多行

来自分类Dev

laravel - 更新数据库

来自分类Dev

从数组中的数据库获取多行

来自分类Dev

如何使用Codeigniter在一个查询中更新数据库中的多行

来自分类Dev

如何在laravel 5.2中更新数据库表

来自分类Dev

Laravel如何更新数据库表中的值?

来自分类Dev

Laravel-在Controller vs Model中更新数据库

来自分类Dev

不更新laravel中的数据库字段

来自分类Dev

Laravel 5更新数据库中现有的

来自分类Dev

如何解决 Laravel 中的数据库更新错误

来自分类Dev

如何在 Laravel 中向数据库中插入多行

来自分类Dev

EF-更新数据库中的多行而不使用foreach循环

来自分类Dev

如何在一次查询中使用计算更新数据库中的多行

来自分类Dev

更新数据库中许多行的最快方法是什么?

来自分类Dev

更新并插入多行到MySQL数据库

来自分类Dev

laravel 5.3 - 多行插入到数据库表

来自分类Dev

无法通过Laravel更新数据库

来自分类Dev

Laravel:Ajax更新到数据库

来自分类Dev

laravel更新数据库多个记录

来自分类Dev

Laravel 8表单更新数据库

来自分类Dev

Laravel失败的数据库更新请求

来自分类Dev

使用Laravel更新数据库

来自分类Dev

Laravel函数不更新数据库

来自分类Dev

laravel - 数据库未更新

来自分类Dev

在简单数据库中合并多行数据

来自分类Dev

如何显示数据库中存储的多行数据

来自分类Dev

实时更新数据库中的数据

来自分类Dev

更新数据库中的数据值

来自分类Dev

更新数据库中的数据列表