#php #html #laravel #oop
#php #HTML #laravel #ооп
Вопрос:
У меня есть 3 таблицы ( sales
, sales_detail
и bicycle
). Я не знаю, как вернуть мое количество ( sales
) в unit balance ( bicycle
), а затем удалить sales_detail
запись, потому что я собираюсь обновить новые продажи.
public function edit(Request $request, $id) {
$sales = Sales::find($id);
$sales_details = SalesDetail::where('sales_id', $id)->get();
$bicycles = Bicycle::where('sales_id', $id)->get();
foreach ($bicycles as $bc amp;amp; $sales_details as $sd) {
$bc->unit_balance = $sd->quantity $bc->unit_balance;
//then delete sales_detail
}
return view('sales/edit', array(
'sales' => $sales,
'sales_details' => $sales_details,
'bicycles' => $bicycles
));
}
Ответ №1:
Я предлагаю использовать отношения Elequents в ваших моделях, таких как ‘belongsto’ и ‘hasmany’, для лучшей подготовки данных. Следование этой практике позволит вам упростить ваши запросы во время разработки. Ваш подход очень грязный / начинающий и процедурный.
Оформить заказ https://laravel.com/docs/5.8/eloquent-relationships
Ответ №2:
public function edit(Request $request, $id) {
$sales = Sales::find($id); // get sales where sales_id = 40
$sales_details = SalesDetail::where('sales_id', $id)->get();
return view('sales/edit', array( 'sales' => $sales,
'sales_details' => $sales_details ));
}
public function update(Request $request, $id) {
$sales = Sales::find($id);
$sales_details = SalesDetail::where('sales_id',$id)->get();
foreach ($sales_details as $sales_dtl) {
$bicycle = Bicycle::find($sales_dtl->bicycle_id);
$bicycle->unit_balance = $bicycle->unit_balance $sales_dtl['quantity'];
$bicycle->save();
$sales_dtl->delete();
}
$this->saveData($sales,$request);
return redirect()->route('sales.index');
}
я уже получил свой ответ