как сделать грамотно сохранение двух связанных таблиц ? Laravel

loads (id, name, weight) и points (id, name, date, load_id)

связал многие ко многим

получается когда создается одна строка в loads должно создастся 2 строки в points привязанных к loads.

к примеру в loads (id, name, weight) 
1 Горох 10

//первая строка дата отправки и откуда
//вторая дата доставки и куда
в points (id, name, date, load_id)
1 Москва 20.10.2021 1
2 Питер 25.10.2021 1

//
А при добавлении этого заказа все делается в одном окне

<form>
  <div class="form-row mb-3">
    <div class="col">
      <label for="formGroupDateFrom">Дата отправки</label>
      <input type="date" name="dates[]" class="form-control" id="formGroupDateFrom">
    </div>
    <div class="col">
      <label for="formGroupDateTo">Дата доставки</label>
      <input type="date" name="dates[]" class="form-control" id="formGroupDateTo">
    </div>
  </div>
  <div class="form-group">
    <label for="formGroupFrom">откуда</label>
    <input type="text" name="points[]" class="form-control" id="formGroupFrom" placeholder="Москва">
  </div>
  <div class="form-group">
    <label for="formGroupTo">Куда</label>
    <input type="text" name="points[]" class="form-control" id="formGroupTo" placeholder="Питер">
  </div>
  <div class="form-group">
    <label for="formGroupNameLoad">Название груза</label>
    <input type="text" name="name" class="form-control" id="formGroupNameLoad" placeholder="Кукуруза">
  </div>
  <div class="form-group">
    <label for="formGroupWeight">Вес (т)</label>
    <input type="number" name="weight" min="1" class="form-control" id="formGroupWeight" placeholder="5">
  </div>
  <button type="button" class="btn btn-primary">сохранить</button>
</form>

 class LoadController extends Controller
    {
        public function store(LoadStoreRequest $request)
        {
            //здесь сохранятся name и Weight
            $createdLoad = Load::create($request->validated());
    
           //что вызывать отдельно так :?
           $point = new Point();

           $count = 0;
           foreach($request->dates){
            $point->load_id = $createdLoad->id;
            $point->name = $request->input('points')[$count];
            $point->date = $request->input('dates')[$count];
            $point->save();
            $count++;
           }
            return new LoadResource($createdLoad);
        }
    }

//на странице же не может быть одинаковых имен
потому что в таблице есть loads name и в points name

в форме я заменил date на масcив dates[] и имя отправки и доставки вместо name = points[]

А как теперь их сохранить по умоляанию  сохраниться в таблице "loads" name и weight

А как теперь сохранить еще две строки в таблицу points ?

Спасибо!


Ответы (0 шт):