$restautants = Restaurant::where("id",$id)->update($inputs); $db_restaurant_albums = []; foreach (RestaurantAlbum::where("restaurant_id", $id)->get("img_url")->toArray() as $key => $v) { $db_restaurant_albums[] = $v['img_url']; } $params_restaurant_albums = $request->input()['restaurant_album']; //求并集 $restaurant_merge = array_merge($db_restaurant_albums, $params_restaurant_albums); //对数据库内容和并集求差集添加入库并且删除数据库中剩下的图片以及目录中对应的图片 //添加 $db_restaurant_diff = array_values(array_diff($restaurant_merge, $db_restaurant_albums)); $param_restaurant_diff = array_values(array_diff($restaurant_merge, $params_restaurant_albums)); foreach ($db_restaurant_diff as $key => $v) { $albums['restaurant_id'] = $id; $albums['img_url'] = $db_restaurant_diff[$key]; RestaurantAlbum::where('restaurant_id', $id)->create($albums); } //删除数据库脏数据删除目录脏图片 foreach ($param_restaurant_diff as $key => $v) { RestaurantAlbum::where(["restaurant_id" => $id, "img_url" => $param_restaurant_diff['$key']])->delete(); }