Вот очень простой метод сохранения контроллера продукта. Я делаю некоторые вычисления, а затем сохраняю данные в базе данных. Но при обновлении данных мне нужно снова запустить эти вычисления, а затем сохранить данные.
Я пробовал несколько способов, но не получаю ничего, кроме сообщений об ошибках, так как я новичок в Laravel. Как я могу написать правильный метод обновления?
public function store(Request $request)
{
//vat and profit calculations
$vat = $request->vat;
$buying_price = $request->buying_price;
$selling_price = $request->selling_price;
$total_price = $buying_price+($buying_price*$vat/100);
$profit = $selling_price-$total_price;
$product = Products::create([
'product_name' => $request->product_name,
'buying_price' => $request->buying_price,
'selling_price' => $request->selling_price,
'vat' => $request->vat,
'total_price' => $total_price,
'profit' => $profit,
]);
return redirect("Product/{$product->id}");
}
Метод обновления (который не работает, как я ожидаю):
public function update(Request $request, $id)
{
$vat = $request->vat;
$buying_price = $request->buying_price;
$selling_price = $request->selling_price;
$total_price = $buying_price+($buying_price*$vat/100);
$profit = $selling_price-$total_price;
$product = Products::findOrFail($id);
$product = Products::update([
'product_name' => $request->product_name,
'buying_price' => $request->buying_price,
'selling_price' => $request->selling_price,
'vat' => $request->vat,
'total_price' => $total_price,
'profit' => $profit,
]);
return redirect("Product/{$product->id}");
/* Basic update system but this does not update the total_price and profit column
$input = $request->all();
$product = Products::findOrFail($id);
$product->update($input);
return redirect("Product/{$product->id}"); */
}