Как установить обновления для этих данных - Laravel / Lumen - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть веб-приложение, в котором пользователь сможет изменять записи MariaDB через GUI внутри браузера. В этом GUI пользователь видит список видимых для него записей. Что бы он ни видел, у него есть разрешение на удаление или изменение.

Чтобы изменить запись в БД, ему просто нужно щелкнуть поля, которые он хочет изменить внутри списка, а затем нажать кнопку «Отправить». В его HTTP-запросе будет передан идентификатор, связанный с записью, чтобы бэкэнд мог идентифицировать соответствующую запись внутри БД и применить изменения.

Теперь я довольно новичок в 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");

Однако поиск ничего не возвращает. Учитывая структуру результатов, которые я здесь запрашиваю, возможен ли такой подход? Или я должен создать какой-то новый код, извлекая результаты в другой структуре, более подходящей для применения к нему изменений?

Тем не менее, есть ли способ поиска этих результатов выборки для подмножества данных, а затем применить изменения к этому подмножеству (и, конечно, сохранить эти изменения в БД)?

1 Ответ

1 голос
/ 04 февраля 2020

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

метод find работает только для идентификаторов. например, $ join = $ join-> find (1); // 1 здесь id (primary_key).

, если вы хотите найти запись по TESTKEY_1 $ join = $ join-> where ("Internal_key", "TESTKEY_1") -> get (); // вернет массив всех записей, имеющих Internal_key TESTKEY_1 , если вы хотите получить только первую запись $ join = $ join-> where ("Internal_key", "TESTKEY_1") -> первый (); // вернет только первое, имеющее Internal_key TESTKEY_1 в виде массива.

...