Hi @obink try something like
public function store(Request $request)
{
$invoice = invoice::create($request->all());
$inputProducts = $request->input('products', []);
$inputQuantities = $request->input('quantities', []);
$products = DB::table('products')->whereIn('id', $inputProducts)->get()->keyBy('id');
foreach ($inputProducts as $index => $productId) {
if ($products->has($productId) && Arr::has($inputQuantities, $index)) {
$invoice->products()->attach([
$productId => [
'quantity' => $inputQuantities[$index ],
'subtotal' => $inputQuantities[$index] * $products->get($productId)->price,
]
]);
Product::where('id', $productId)->decrement('qty', $inputQuantities[$index]);
}
}
return redirect()->route('productsOut.index');
}