【发布时间】:2020-02-20 03:11:05
【问题描述】:
我正在尝试从我的产品表中删除一条记录,每个产品都有一张图片。我不知道如何从存储图像的文件中删除图像。
Product.js
$(document).ready(function() {
$("#btn-delete").click(function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'DELETE',
url: '/product/' + $("#frmDeleteProduct input[name=product_id]").val(),
dataType: 'json',
success: function(data) {
$("#frmDeleteProduct .close").click();
window.location.reload();
},
error: function(data) {
console.log(data);
}
});
});
});
function deleteProductForm(product_id) {
$.ajax({
type: 'GET',
url: '/product/' + product_id,
success: function(data) {
$("#frmDeleteProduct #delete-title").html("¿Do you want to delete this product (" + data.products.name + ")?");
$("#frmDeleteProduct input[name=product_id]").val(data.products.id);
$('#deleteProductModal').modal('show');
},
error: function(data) {
console.log(data);
}
});
}
ProductController.php
我读到我需要在我的控制器 File::delete('img/products/' . $image); 中放入类似的东西,但我现在不知道如何。
public function destroy($id)
{
//File::delete('img/products/' . $image);
$products = Product::destroy($id);
return response()->json([
'error' => false,
'products' => $products,
], 200);
}
【问题讨论】:
-
在你的destroy方法中,你应该检查数据库中是否存在具有该id的图像,如果存在,获取图像路径,然后使用PHP的“unlink”方法或使用Storage::delete函数与您的文件的路径。
-
我用这个id来验证产品。图像具有不同的名称。我应该怎么做? @AliKhalili
-
删除商品前需要先获取商品图片,然后
Storage::delete($product->image),然后才能继续删除商品
标签: javascript php html ajax laravel