Comparte:
Agragar Campos en array y guardar en DB
Hola buenas tardes,
Tengo este codigo:
Tengo este codigo:
<div class="form-group" >
@foreach($apoyo->productos as $producto)
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label for="cantidad">Cantidad</label>
<input type="number" class="form-control" id="cantidad" placeholder="" name="productos[{{$producto->id}}][cantidad]" value="{{$producto->cantidad}}">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="unidad">unidad</label>
<input type="text" class="form-control" id="unidad" placeholder="" name="productos[{{$producto->id}}][unidad]" value="{{$producto->unidad}}">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="Concepto">Concepto</label>
<input type="text" class="form-control" id="concepto" placeholder="" name="productos[{{$producto->id}}][concepto]" value="{{$producto->concepto}}">
</div>
</div>
</div>
@endforeach
<div id="products" ></div>
<div class="row">
<a href="javascript:;" id="add-new-product" class="btn btn-primary">Nuevo producto</a>
</div>
</div>
En el jquery
<script>
let i = 1;
document.getElementById('add-new-product').onclick = function () {
let template = `
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label for="cantidad">Cantidad</label>
<input type="text" class="form-control" id="cantidad" placeholder="" name="productos[${i}][cantidad]">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="unidad">unidad</label>
<input type="text" class="form-control" id="unidad" placeholder="" name="productos[${i}][unidad]">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="Concepto">Concepto</label>
<input type="text" class="form-control" id="concepto" placeholder="" name="productos[${i}][concepto]">
</div>
</div>
</div>
</div>
`;
let container = document.getElementById('products');
let div = document.createElement('div');
div.innerHTML = template;
container.appendChild(div);
i++;
}
</script>
En mi modelo parte update agregue
$productos = [];
$count = count($request->get('productos'));
for($a =0 ; $a < $count ; $a++ ) {
foreach ($request->get('productos') as $id => $value) {
$productos[] = Producto::find($id)
? $id
: Producto::create($request->get('productos')[$a])->id;
}
}
$apoyo->productos()->sync($productos);
me aparece error Undefined offset: 0
como se darán cuenta al editar un ítem me edita el numero 1 y así cada que aumente 1 item de mas.
De momento no se ni en donde empieza el problema o termina.
Agradezco su colaboración.