Правилното решение ще зависи от това дали планирате да съхранявате скаларни стойности под $_POST['invoice']['new_item_attributes'] или ако планирате да го направите масив от масиви (с други думи, планирате да имате кратни на new_item_attributes .
Ако планирате да съхранявате само скаларни стойности, първо ще трябва да промените всеки от елементите на формуляра, за да изглежда така:
name="inovoice[new_item_attributes][description]"
Ще забележите, че празното [] е изчезнало.
И тогава вашият цикъл трябва да изглежда така:
foreach($_POST['invoice']['new_item_attributes'] as $key => $val) {
$data = array('description => $value);
}
В противен случай ще трябва да използвате това във вашия PHP код:
foreach($_POST['invoice']['new_item_attributes'] as $key => $val) {
$data = array('description' => $val['description']);
}
Или:
foreach($_POST['invoice']['new_item_attributes'] as $key => $val) {
foreach($val as $sub => $value) {
$data = array($sub => $value);
}
}