Tutorial Laravel 12 dan Tailwind Css #7 Delete Data

Pelajari Laravel 12 dan Tailwind CSS dari dasar hingga tingkat lanjut dengan tutorial lengkap dan mudah dipahami. Laravel 12 adalah framework PHP yang powerful untuk membangun aplikasi web modern, sementara Tailwind CSS adalah framework CSS yang fleksibel dan efisien untuk desain antarmuka yang responsif.

✅ Telah dilihat 653 kali

Rating: 5.00 ⭐

... 12 March 2025, 16:06

Delete Data


Pada fungsi kali ini, kita tidak perlu membuat view, yakni cukup merubah fungsi destroy pada ImageController menjadi seperti berikut ini:

use Illuminate\Support\Facades\Storage;
public function destroy(Image $image)
    {
        $image->delete();
        return redirect()->route('images.index')->with('success', 'Image deleted successfully');
    }

Kode ini berfungsi untuk menghapus data gambar dari database. Metode delete() digunakan untuk menghapus entri gambar yang diberikan. Setelah penghapusan berhasil, pengguna dialihkan kembali ke halaman daftar gambar dengan pesan sukses Image deleted successfully.

Script diatas juga menggunakan Storage::disk('public')->delete($image->image); untuk menghapus file gambar yang tersimpan sebelum menghapus entri gambar dari database. Dengan cara ini, file tidak akan tersisa di penyimpanan setelah gambar dihapus dari database.

Start the app


Pastikan apache dan mysql didalam XAMPP sudah dijalankan, kemudian jalankan aplikasi dengan cara menjalankan perintah

php artisan serve

Kemudian klik button delete pada salah satu data. Maka akan terlihat seperti berikut ini:

File didalam direktori sebelum dihapus

Fila didalam direktori setelah dihapus

pesan sukses hapus

Sampai pada tutorial kali ini, kita telah berhasil membuat aplikasi CRUD sederhana dengan laravel 12. Berikut untuk keseluruhan controller kita:

<?php

namespace App\Http\Controllers;

use App\Models\Image;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class ImageController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index()
    {
        $images = Image::latest()->get();
        return view('images.index', compact('images'));
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        return view('images.create');
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
    {
        $request->validate([
            'title' => 'required',
            'image' => 'required|image|mimes:jpg,png,jpeg|max:2048',
        ]);

        $imagePath = $request->file('image')->store('images', 'public');

        Image::create([
            'title' => $request->title,
            'image' => $imagePath,
        ]);

        return redirect()->route('images.index')->with('success', 'Image uploaded successfully');
    }

    /**
     * Display the specified resource.
     */
    public function edit(Image $image)
    {
        return view('images.edit', compact('image'));
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, Image $image)
    {
        $request->validate(['title' => 'required']);

        if ($request->hasFile('image')) {
            $imagePath = $request->file('image')->store('images', 'public');
            $image->update(['title' => $request->title, 'image' => $imagePath]);
        } else {
            $image->update(['title' => $request->title]);
        }

        return redirect()->route('images.index')->with('success', 'Image updated successfully');
    }

    /**
     * Remove the specified resource from storage.
     */


    public function destroy(Image $image)
    {
        Storage::disk('public')->delete($image->image);

        $image->delete();

        return redirect()->route('images.index')->with('success', 'Image deleted successfully');
    }
}

Terima kasih telah belajar bersama lagikosing, semoga ilmunya berkah dan bermanfaat, sampai jumpa pada materi berikutnya.

Daftar eBook