我有一对多的模型关系。在创建新记录时,我可以保存尽可能多的行。但我想在更新操作后添加新行或删除已保存的行。我该怎么做?
项目模型
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);
}
修改表单
数据库表