Laravel - вставлять и удалять строки при обновлении - PullRequest
0 голосов
/ 21 мая 2018

У меня есть отношения Модель-один-ко-многим.При создании новой записи я могу сохранить столько строк, сколько захочу.Но я хочу добавить новую строку или удалить сохраненную строку после операции Обновить .Как бы я это сделал?

Модель изделия

public function models() {
    return $this->hasMany(Model::class, 'item_id');
}

Модель Модель

public function model()
{
    return $this->belongsTo(Item::class, 'item_id');
}

Контроллер

Магазин

public function store(Request $request, Item $item)
 {
  $item = new Item;
    $item->title = request('title');

    if($item->save())
      {
       for ($i=0; $i < count(request('model_name')); ++$i) 
        {
        $model = new Model;
        $model->name = request('name')[$i];
        $model->price = request('price')[$i];
      }
   return redirect()->back();
 }

Обновление

public function update(Request $request, $id){
$item = Item::findOrFail($id);
$data = $request->all()
$models = Model::with(['model'])->where('item_id', $item->id)->get();
  $i=0;   
  foreach($models as $new_model)
    {
      if (isset($model_name[$i])){
           $new_model->sku = request('name')[$i];
           $new_model->price= request('price')[$i];
           $++i;
         $shnp->models()->save($new_model);
       }
    }
    $item->update($data);
  }

Редактировать форму

Edit Form

Таблица базы данных

Item - Model

...