Pendahuluan
CRUD (Create, Read, Update, Delete) adalah fitur paling dasar yang hampir selalu ada dalam aplikasi web. Pada artikel ini, kita akan belajar membuat CRUD sederhana di Laravel 12 dengan contoh produk.
Dengan contoh ini, kamu akan memahami alur dasar CRUD di Laravel mulai dari membuat migration, model, controller, route, hingga view.
1. Membuat Migration & Model
Pertama, buat migration dan model untuk tabel produk:
php artisan make:model Product -m
Kemudian buka file migration database/migrations/…create_products_table.php dan ubah menjadi seperti berikut:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->integer('price');
$table->timestamps();
});
}
Lalu jalankan perintah:
php artisan migrate
2. Membuat Controller
Buat controller dengan resource method:
php artisan make:controller ProductController --resource
Di dalam ProductController.php, tambahkan logika dasar CRUD:
use App\Models\Product;
use Illuminate\Http\Request;
class ProductController extends Controller
{
// READ (Tampilkan semua produk)
public function index()
{
$products = Product::all();
return view('products.index', compact('products'));
}
// CREATE (Form tambah produk)
public function create()
{
return view('products.create');
}
// STORE (Simpan produk baru)
public function store(Request $request)
{
Product::create($request->all());
return redirect()->route('products.index')->with('success','Produk berhasil ditambahkan');
}
// EDIT (Form edit produk)
public function edit(Product $product)
{
return view('products.edit', compact('product'));
}
// UPDATE (Simpan perubahan)
public function update(Request $request, Product $product)
{
$product->update($request->all());
return redirect()->route('products.index')->with('success','Produk berhasil diupdate');
}
// DELETE
public function destroy(Product $product)
{
$product->delete();
return redirect()->route('products.index')->with('success','Produk berhasil dihapus');
}
}
3. Menambahkan Route
Tambahkan di routes/web.php:
Route::resource('products', ProductController::class);
4. Membuat View
Buat folder resources/views/products/.
index.blade.php
<h2>Daftar Produk</h2>
<a href="{{ route('products.create') }}">Tambah Produk</a>
<ul>
@foreach($products as $p)
<li>{{ $p->name }} - Rp{{ $p->price }}
<a href="{{ route('products.edit',$p->id) }}">Edit</a>
<form action="{{ route('products.destroy',$p->id) }}" method="POST">
@csrf @method('DELETE')
<button type="submit">Hapus</button>
</form>
</li>
@endforeach
</ul>
create.blade.php
<h2>Tambah Produk</h2>
<form action="{{ route('products.store') }}" method="POST">
@csrf
<input type="text" name="name" placeholder="Nama Produk">
<input type="number" name="price" placeholder="Harga Produk">
<button type="submit">Simpan</button>
</form>
edit.blade.php
<h2>Edit Produk</h2>
<form action="{{ route('products.update',$product->id) }}" method="POST">
@csrf @method('PUT')
<input type="text" name="name" value="{{ $product->name }}">
<input type="number" name="price" value="{{ $product->price }}">
<button type="submit">Update</button>
</form>
5. Uji Coba CRUD
Sekarang buka browser ke /products.
Kamu bisa menambah produk, menampilkan daftar produk, mengedit, dan menghapus data.
Kesimpulan
Dengan mengikuti langkah di atas, kita sudah berhasil membuat CRUD sederhana di Laravel 12. Dari sini kamu bisa kembangkan lebih lanjut dengan validasi, pagination, upload gambar, atau relasi database.