Laravel / Lumen / Eloquent - обновление coretable :: with ($ OneDimArrayOfTablenames) с помощью многомерного массива - PullRequest
1 голос
/ 06 февраля 2020

Я хочу написать функцию, в которой многомерный массив имеет следующую структуру:

    {
      "id_coretable": 1,
      "Internal_key": "UPDATED1",
      "extensiontable_itc": {
        "description_itc": "UPDATED1"
      },
      "extensiontable_sysops": {
        "description_sysops": "UPDATED1"
      }
    }

обновляет многомерную модель / коллекцию (я могу создать любую из них, в зависимости от того, что может потребоваться для реального решения этой проблемы) ) с в основном такой же структурой:

    {
      "id_coretable": 1,
      "Internal_key": "NOTYETUPDATED1",
      "extensiontable_itc": {
        "description_itc": "NOTYETUPDATED1"
      },
      "extensiontable_sysops": {
        "description_sysops": "NOTYETUPDATED1"
      }
    }

Эта модель получена следующим образом:

$model = coretable::with($OneDimArrayOfTablenames);

Я уже искал stackoverflow для вопросов, касающихся обновления модели с входными данными в форма массива. Я нашел довольно эффективное решение здесь:

Laravel 5 Массив с сохранением ключа в модели

См. Принятый ответ там.

Однако:

    $model->fill($twoDimArrayWithUpdates);
    $model->save();

Не выполняет работу. Он обновляет только элементы из внешнего массива, а именно Internal_key. Он не «спускается» глубже в целевой массив, и, возможно, он даже не спускается глубже в исходный массив. Я действительно не знаю, как наблюдать это ближе, хотя ^^

Могу ли я что-нибудь с этим сделать? В объявлении моделей затронутых таблиц я сделал атрибуты, которым эти обновления должны быть назначены по массе:

      protected $fillable = [
        'name_of_the_attribute'
      ];

Так что я думаю, что это не должно быть проблемой. Если вам нужна дополнительная информация о моей структуре БД или модели, просто скажите мне. Я просто пытался сосредоточить внимание на этом вопросе, и пока не думаю, что вам нужно что-то еще.

...