我有一个订购应用程序,其中包含订购商品。我能够更新仅包含单个数据的字段,但无法使处理数组数据的字段起作用。订单商品属于另一个名为OrderItems的模型。您可以帮助您正确处理吗?
这是我的更新功能。
public function update(Request $request, Orders $order )
{
$this->validate($request, [
'user_id' => 'required',
'status_id' => 'required',
'currency_id' => 'required',
'company_id' => 'required',
'purchase_no' => 'required|unique:orders,purchase_no,'.$order->id,
'notes' => '',
'admin_notes' => '',
'delivery_date' => '',
'publish' => '',
'product_id' => 'required',
'product_code' => 'required',
'product_name' => 'required',
'quantity' => 'required'
]);
$order->user_id = $request->input('user_id');
$order->status_id= $request->input('status_id');
$order->currency_id = $request->input('currency_id');
$order->company_id = $request->input('company_id');
$order->purchase_no = $request->input('purchase_no');
$order->notes = $request->input('notes');
$order->admin_notes = $request->input('admin_notes');
$order->delivery_date = $request->input('delivery_date');
$order->publish = $request->input('publish');
$order->grandtotal = (float) str_replace(',', '', $request->input('grandtotal'));
$order->save();
$input = Orderitems::findOrFail($order->id);
for($i=0; $i<= count($input['quantity']); $i++) {
if(empty($input['quantity'][$i]) || !is_numeric($input['quantity'][$i])) continue;
$items->product_id = $input->input('product_id')[$i];
$items->product_code = $input->input('product_code')[$i];
$items->product_name = $input->input('product_name')[$i];
$items->cost = $input->input('cost')[$i];
$items->quantity = $input->input('quantity')[$i];
$items->total_cost = (float) str_replace(',', '', $input->input('total_cost')[$i]);
$orderItems->save();
}
return redirect()->route('orders.index');
}
非常感谢您!
答案 0 :(得分:2)
您为更新写了错误的代码。应该是这样的。
您要保存$orderItems
代码中尚未更新的对象。
$items= $order->orderItems;
// still code not updated here i want to print product _id ?
foreach($items as $key => $item) {
$item->product_id = $request->input('product_id')[$key];
$item->product_code = $request->input('product_code')[$key];
$item->product_name = $request->input('product_name')[$key];
$item->cost = $request->input('cost')[$key];
$item->quantity = $request->input('quantity')[$key];
$item->total_cost = (float) str_replace(',', '', $request->input('total_cost')[$key]);
$item->save();
}