У меня проблема с обновлением записей. Я пытаюсь обновить 2 таблицы: во-первых, это таблица ORDERS , а во-вторых, ORDER_ITEMS , вторая таблица получает массив. У меня нет проблем с сохранением транзакции, мои проблемы - я не могу заставить обновление работать.
Заказ модели
public function orderItems()
{
return $this->hasMany('App\Orderitems', 'order_id', 'id')->orderBy('created_at', 'DESC');
// return $this->hasMany(Orderitems::class)->orderBy('created_at', 'DESC');
}
Элементы заказа Модель
public function orders()
{
return $this->belongsTo('App\Orders','id','order_id');
// return $this->belongsToMany(Orders::class);
}
OrdersController.php
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 = $request->only(
'user_id',
'status_id',
'currency_id',
'company_id',
'purchase_no',
'notes',
'admin_notes',
'delivery_date',
'publish'
);
$order['grandtotal'] = (float) str_replace(',', '', $request->grandtotal);
$order->update($request);
$input = $request->all();
for($i=0; $i<= count($input['quantity']); $i++) {
if(empty($input['quantity'][$i]) || !is_numeric($input['quantity'][$i])) continue;
$items = [
'order_id' => $orders->id,
'product_id' => $input['product_id'][$i],
'product_code' => $input['product_code'][$i],
'product_name' => $input['product_name'][$i],
'cost' => $input['cost'][$i],
'quantity' => intval($input['quantity'][$i]),
'total_cost' => (float) str_replace(',', '', $input['total_cost'][$i]),
];
Orderitems::update($items);
}
if ($request){
Session::flash('message','Purchase order was successfully updated');
Session::flash('m-class','alert-success');
} else {
Session::flash('message','Data is not saved');
Session::flash('m-class','alert-danger');
return redirect()->route('orders.index');
}
return redirect()->route('orders.index');
}
Я считаю, что красноречивое отношение в порядке, потому что я смог завершить сохранение или запись. Можете ли вы сказать мне, где все испортилось?
Заранее большое спасибо!