老问题,但这是一个答案.
1和2 – 如果未提供现有图像ID,Laravel的updateOrCreate()方法将更新现有记录并插入新记录.请参阅Eloquent ORM’s Update documentation下的“updateOrCreate”.
$images = App\ProductImage::updateOrCreate(
['id' => $id],
['field1' => $field1, 'field2' => $field2]
);
3 – 要删除,请在表单中添加一个删除复选框,将目标图像ID作为数组传递…
Delete
…然后,在您的产品更新方法中,只需将字段数组传递给Eloquent的destroy()方法.
$imgsToDelete = $request->get('imgsToDelete');
ProductImage::destroy($imgsToDelete);
不要忘记从文件系统中删除存储的图像!