मैं अपनी उत्पाद तालिका से एक रिकॉर्ड हटाने की कोशिश कर रहा हूं, प्रत्येक उत्पाद में एक छवि होती है। मुझे नहीं पता कि छवि को उस फ़ाइल से कैसे हटाया जाए जहां यह संग्रहीत है।
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);
}
1
Daniel T.
23 अक्टूबर 2019, 22:59
1 उत्तर
सबसे बढ़िया उत्तर
जब आपकी छवि सहेजी गई थी, तो आपको File::delete()
पूरे पथ के पैरामीटर के रूप में पास करना होगा। उदाहरण के लिए, यदि आपकी छवियां उपनिर्देशिका img/products/
में लार्वा संग्रहण पथ में थीं, और छवि का नाम .jpg
एक्सटेंशन वाले उत्पाद की आईडी है, तो आप यह कर सकते हैं:
public function destroy($id)
{
$fullImgPath = storage_path("img/products/$id.jpg");
if(File::exists($fullImgPath)) {
File::delete($fullImgPath);
}
$products = Product::destroy($id);
return response()->json([
'error' => false,
'products' => $products,
], 200);
}
लेकिन अगर आपके Product
मॉडल में इमेज का नाम है, तो आप यह कर सकते हैं:
public function destroy($id)
{
$product = Product::find($id);
$fullImgPath = storage_path("img/products/".$product->image_name);
if(File::exists($fullImgPath)) {
File::delete($fullImgPath);
}
$product->delete();
return response()->json([
'error' => false,
'products' => $product->id,
], 200);
}
0
Jean Marcos
23 अक्टूबर 2019, 20:34