Я хочу написать функцию, в которой многомерный массив имеет следующую структуру:
{
"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'
];
Так что я думаю, что это не должно быть проблемой. Если вам нужна дополнительная информация о моей структуре БД или модели, просто скажите мне. Я просто пытался сосредоточить внимание на этом вопросе, и пока не думаю, что вам нужно что-то еще.