Клонирование полей, name="service[]", функция записи в бд for ($i = 0;

Цена договорная
25 сентября 2021, 07:41 • 0 откликов • 2 просмотра
Задача довольно простая, но для тех кто шарит, уже пытались помочь и чет пришли в тупик.
Сайт на кохане, ko7, кто работал с любыми фраемворками тот поймет.

Стоимость договорная.

На сайте в админке есть категории, можно добавлять категорию и потом в эту категорию еще категорию и будет подкатегория.

Так вот, создал я категорию и в ней подкатегорию, внутри есть поля для контента, чтобы в категории потом выводить на фронте, и по мимо этого есть прайсы, тож поля импут и все дела.

Как это выглядит:



Я сделал скрипт дублирование строк, чтобы можно было еще вариант услуги добавить, это при клике на кнопку.

Сам скрипт дублирование с добавлением 1, 2, 3 и так далее
<script>
$(function() {

let counter_line = 1;

$(document).on('click', '.Addname', function() {

let obj = `
<tr>
<td>
<input type="texttttaf" name="service[${counter_line}]" />
</td>
<td>
<input type="texttttaf" name="unit[${counter_line}]" />
</td>
<td>
<input type="texttttaf" style="width:90px" name="price[${counter_line}]" /> руб
</td>
</tr>
`;
const newRow = $(obj);

$('.addlist').append(newRow);
counter_line++;
});

});
</script>

При дублировании, у меня добавляется число в name 1, 2 и так далее.
Вид в шаблоне:



Далее, в бд в таблице категории, я создал поля



Далее в контроллере, у меня функция такая, обвел красным



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

И не совсем понимаю, как это должно в три поля со всех строк все записываться, данный метод посоветовали но как он работает я не совсем понял )
Файлы