我正在尝试从我的JS视图中检索数据到我的控制器并保存到我的数据库。对于我的item_id
,我能够检索每个所选项目的ID。
但是当我输入所选项目的数量时,在我的数据库中,为所有选定项目显示的数量是输入的第一个数量。
所以,如果我有,
Item: HpBook
Qty : 5
Item: Mac
Qty: 10
在数据库中,mac的数量也保存为5.我做错了什么?
JS
$('.form').append(
'<div class="container"> '+
'<input type="hidden" value='+item.id+' data-id="'+item.id+'" name="item_id[]" />'+
'<input type="text" class="quantity" placeholder=" Enter Value " name="quantity" />'+
'<p class="total" >Figures $:<span name="figures" id="figures"></span></p>'+
'</div>'
);
控制器
$item = new Item(array(
'total' => $request->get('figures'),
));
$item->save();
$item->products()->attach($request->get('item_id'),['quantity' => $request->get('quantity')]);
答案 0 :(得分:0)
你的js遗失了[]
应该是:
$('.form').append(
'<div class="container"> '+
'<input type="hidden" value='+item.id+' data-id="'+item.id+'" name="item_id[]" />'+
'<input type="text" class="quantity" placeholder=" Enter Value " name="quantity[]" />'+
'<p class="total" >Figures $:<span name="figures" id="figures"></span></p>'+
'</div>'
);
答案 1 :(得分:0)
在HTML中,修正数量名称的拼写错误:
'<input type="text" class="quantity" placeholder=" Enter Value " name="quantity[]" />'+
在您的控制器中,首先为产品制作一个数组,然后将其附加到模型中:
$products = [];
foreach($request->get('item_id') as $key => $id) {
$products[$id] = ['quantity' => $request->get('quantity')[$key]];
}
$item->products()->attach($products);