php + laravel, количество вернуть - PullRequest
0 голосов
/ 13 марта 2019

У меня есть 3 таблицы (sales, sales_detail и bicycle).Я не знаю, как вернуть мое количество (sales) на единицу баланса (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 && $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
    ));
}

Ответы [ 2 ]

1 голос
/ 13 марта 2019

Я предлагаю использовать отношения Elequents в ваших моделях, таких как «ownsto» и «hasmany», чтобы лучше подготовить данные.Следование этой практике позволит вам упростить ваши запросы во время разработки.Ваш подход очень грязный / начинающий и процедурный.

Оформить заказ https://laravel.com/docs/5.8/eloquent-relationships

0 голосов
/ 14 марта 2019

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');
  }
я уже получил свой ответ
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...