CRUD Laravel 11 – Insert Data ke Database – Salah satu operasi dasar dalam pengembangan aplikasi adalah menambahkan atau menyimpan data ke dalam database, yang dikenal sebagai operasi Create dalam prinsip CRUD (Create, Read, Update, Delete). Di Laravel 11, proses ini bisa dilakukan dengan mudah menggunakan Eloquent ORM yang memungkinkan kita mengelola database tanpa harus menulis kueri SQL secara manual.
Dalam artikel ini, kita akan membahas langkah-langkah untuk memasukkan data ke database di Laravel 11, mulai dari membuat form input, validasi data, hingga menyimpan data ke tabel database menggunakan model Laravel.
Insert Data ke Database
1. Membuat Button Tambah Data
Sebelum mebuat form untuk input tambah data, kita perlu memiliki button atau tombol yang berfungsi untuk mengarahkan ke form input data. Pada umumnya, button tambah data ada di view index atau tabel untuk menampilkan semua data. Untuk membuatnya, buka file index.blade.php
di dalam folder resources/views/posts/
:
<a href="/posts/create" class="btn btn-primary">Tambah Data</a>
Selain button tambah data, andda juga perlu menambahkan alert sukses untuk menandakan ke user bahwa data berhasil tersimpan ke database. Anda bisa membuatnya di file index.blade.php
di dalam folder resources/views/posts/.
<!-- Menampilkan alert sukses --> @if (session('success')) <div class="alert alert-success"> <strong>{{ session('success') }}</strong> </div> @endif
2. Membuat Form untuk Input Data
Langkah selanjutnya dalam menyimpan data ke database adalah membuat form input yang memungkinkan pengguna memasukkan informasi yang ingin disimpan. Form ini akan mengirimkan data ke controller untuk diproses. Buat file create.blade.php
di dalam folder resources/views/posts/
:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Buat Post</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> </head> <body> <div class="container"> <h1>Buat Post Baru</h1> <!-- Menampilkan error validasi --> @if ($errors->any()) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <!-- Form untuk mengirim data post --> <form action="/posts" method="POST"> @csrf <div class="form-group"> <label for="title">Judul:</label> <input type="text" id="title" class="form-control" name="title" value="{{ old('title') }}"> </div> <div class="form-group"> <label for="content">Konten:</label> <textarea id="content" class="form-control" name="content">{{ old('content') }}</textarea> </div> <button type="submit" class="btn btn-primary mt-3">Simpan</button> </form> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"> </script> </div> </body> </html>
Form di atas menggunakan metode POST untuk mengirim data ke route yang akan diproses oleh controller.
3. Membuat Method untuk Menyimpan Data
Sebelumnya, kita sudah membuat method untuk menampilkan data dari database yaitu pada method index di controller PostController.php
. Sekarang kita akan menambahkan logika di dalam controller untuk memproses data yang dikirim dari form dan menyimpannya ke database, buka file PostController.php
dan tambahkan dua metode berikut :
namespace App\Http\Controllers; use App\Models\Post; use Illuminate\Http\Request; class PostController extends Controller { // Menampilkan form untuk membuat post baru public function create() { return view('posts.create'); } // Menyimpan data post ke database public function store(Request $request) { // Validasi data yang dikirimkan $request->validate([ 'title' => 'required|max:255', 'content' => 'required', ]); // Menyimpan data ke database menggunakan model Post Post::create([ 'title' => $request->input('title'), 'content' => $request->input('content'), ]); // Redirect ke halaman yang diinginkan setelah menyimpan data return redirect('/posts)->with('success', 'Post berhasil disimpan!'); } }
Pada metode store
, kita melakukan beberapa hal:
- Validasi Data : Menggunakan metode
validate()
untuk memeriksa apakah input dari form sesuai dengan aturan yang ditetapkan. - Menyimpan Data : Menggunakan model
Post
untuk menyimpan data ke database dengan metodecreate()
. - Redirect : Setelah data berhasil disimpan, pengguna akan diarahkan kembali ke halaman form dengan pesan sukses.
4. Mengaktifkan Mass Assignment pada Model
Agar kita bisa menggunakan metode create()
untuk menyimpan data secara massal, kita perlu mendefinisikan atribut yang dapat di-assign secara massal di model Post
. Buka file Post.php
di folder app/Models/
dan tambahkan properti $fillable
:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Post extends Model { use HasFactory; // Atribut yang dapat diisi secara massal protected $fillable = ['title', 'content']; }
Dengan menambahkan properti ini, kita mengizinkan atribut title
dan content
untuk diisi langsung menggunakan metode create()
.
5. Uji Coba Fitur Insert Data ke Database
Mari kita uji coba proses insert data ke database apakah berhasil dan validasinya berjalan atau tidak.


Kesimpulan
Proses insert data ke database di Laravel 11 sangat mudah dan efisien berkat penggunaan Eloquent ORM dan fitur validasi yang terintegrasi. Dengan mengikuti langkah-langkah di atas, Anda dapat membuat form input, melakukan validasi, dan menyimpan data ke database dengan aman. Artikel ini memberikan dasar untuk menangani operasi Create dalam prinsip CRUD. Untuk operasi selanjutnya seperti edit dan delete, pastikan Anda mengikuti artikel berikutnya.
Part Selanjutnya

Meninggalkan jejak di internet dengan menulis artikel
Leave a Reply