Die richtige Lösung hängt davon ab, ob Sie planen, skalare Werte unter $_POST['invoice']['new_item_attributes'] zu speichern oder ob Sie vorhaben, daraus ein Array von Arrays zu machen (mit anderen Worten, Sie planen, ein Vielfaches der new_item_attributes zu haben .
Wenn Sie nur skalare Werte speichern möchten, müssen Sie zunächst alle Formularelemente so ändern, dass sie wie folgt aussehen:
name="inovoice[new_item_attributes][description]"
Sie werden feststellen, dass das leere [] verschwunden ist.
Und dann sollte Ihre Schleife so aussehen:
foreach($_POST['invoice']['new_item_attributes'] as $key => $val) {
$data = array('description => $value);
}
Andernfalls müssen Sie dies in Ihrem PHP-Code verwenden:
foreach($_POST['invoice']['new_item_attributes'] as $key => $val) {
$data = array('description' => $val['description']);
}
Oder:
foreach($_POST['invoice']['new_item_attributes'] as $key => $val) {
foreach($val as $sub => $value) {
$data = array($sub => $value);
}
}