如何设置此数据的更新 - Laravel/Lumen

How to set Updates to this data - Laravel/Lumen

我有一个 Web 应用程序,用户可以在其中通过浏览器内的 GUI 更改 MariaDB 记录。 在此 GUI 中,用户会看到一个他可见的记录列表。无论他能看到什么,他也有权删除或更改。

要更改数据库记录,他只需在列表中单击要更改的字段,然后按 "send" 按钮即可。 在他的 HTTP 请求中,将传输与记录关联的 ID,以便后端可以识别数据库中的相应记录并应用更改。

现在,我对 Laravel/Lumen 比较陌生。要首先获取用户可以应用更改的列表,我有以下代码:

$join = coretable::with($permittedTables)->get();

$permittedTables 是一个表名数组,因此任何数量或组合的表都可以连接到 coretable。 例如,提取可以如下所示:

[{
  "Internal_key": "TESTKEY_1",
  "extensiontable_itc": {
    "description": "EXTENSION_iTC_1"
  },
  "extensiontable_sysops": {
    "description": "EXTENSION_SYSOPS_1"
  }
}, {
  "Internal_key": "TESTKEY_2",
  "extensiontable_itc": {
    "description": "EXTENSION_ITC_2"
  },
  "extensiontable_sysops": {
    "description": "EXTENSION_SYSOPS_2"
  }
}, {
  "Internal_key": "TESTKEY_3",
  "extensiontable_itc": {
    "description": "EXTENSION_ITC_3"
  },
  "extensiontable_sysops": {
    "description": "EXTENSION_SYSOPS_3"
  }
}, {
  "Internal_key": "TESTKEY_4",
  "extensiontable_itc": {
    "description": "EXTENSION_ITC_4"
  },
  "extensiontable_sysops": {
    "description": "EXTENSION_SYSOPS_4"
  }
}, {
  "Internal_key": "TESTKEY_5",
  "extensiontable_itc": {
    "description": "EXTENSION_ITC_5"
  },
  "extensiontable_sysops": {
    "description": "EXTENSION_SYSOPS_5"
  }
}]

现在,我想知道我是否可以重用我创建的代码来获取用于设置数据的数据。 所以我使用上面显示的 $join 并试图确定我想要更改的数据记录。 尝试看起来像这样:

$join = $join->find("TESTKEY_1");

然而,这个发现并没有 return 任何东西。 考虑到我在这里查询的结果的结构,这种方法是否可行?或者我应该构建一些新代码,以不同的结构获取结果,更适合对其应用更改?

不过,有没有办法在这些获取结果中搜索数据子集,然后将更改应用于该子集(当然,并将这些更改保存到数据库中)?

$join = $join->find("TESTKEY_1");

查找方法仅适用于 ID。 例如$join = $join->find(1); //1在这里是id(primary_key).

如果你想通过TESTKEY_1查找记录 $join = $join->where("Internal_key","TESTKEY_1")->get(); // 将 return 具有 Internal_key TESTKEY_1 的所有记录的数组 如果您只想获取第一条记录 $join = $join->where("Internal_key","TESTKEY_1")->first(); // 将 return 仅首先将 Internal_key TESTKEY_1 作为数组。