php laravel, возврат количества

#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');
  }  

я уже получил свой ответ