fix: resolve force-delete for tours in panel admin

This commit is contained in:
2026-08-22 11:04:56 +03:30
parent 9c5101a6a6
commit ecc48a3f57
+34 -6
View File
@@ -16,6 +16,7 @@ use Hekmatinasser\Verta\Verta;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
class TourController extends Controller class TourController extends Controller
{ {
@@ -325,14 +326,41 @@ class TourController extends Controller
->with('success', 'تور با موفقیت بازگردانی شد.'); ->with('success', 'تور با موفقیت بازگردانی شد.');
} }
public function forceDelete($id)
public function forceDelete($id)
{ {
$tour = Tour::onlyTrashed()->findOrFail($id); $tour = Tour::onlyTrashed()
->with('images.file')
->findOrFail($id);
$tour->forceDelete(); try {
DB::transaction(function () use ($tour) {
foreach ($tour->images as $image) {
$file = $image->file;
return redirect() if ($file) {
->route('admin.tours.trash.index')
->with('success', 'تور به‌صورت دائمی حذف شد.'); Storage::disk('public')->delete($file->path);
$file->delete();
}
$image->delete();
}
$tour->forceDelete();
});
return redirect()
->route('admin.tours.trash.index')
->with('success', 'تور و تمام تصاویر و فایل‌های آن به‌صورت دائمی حذف شدند.');
} catch (\Throwable $exception) {
report($exception);
return back()
->with('error', 'حذف دائمی تور انجام نشد.');
}
} }
} }