Laravel / Pemrograman Web Lanjut · July 24, 2022

Insert Data Ke Dalam Database Pada Laravel #belajarlaravel-9

image_pdf

Setelah berhasil menampilkan data yang sudah ditambahkan secara manual, kali ini kita akan menambah data dengan bantuan laravel. Pertama silahkan membuat route baru yang diarahkan ke halaman create.blade.php menggunakan function create pada controller BukuController.php

Route::get('/buku/create', [BukuController::class, 'create']);

Selanjutnya buat file create.blade.php pada folder buku di views, isi datanya sebagai berikut

@extends('layouts.main')

@section('container')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-12">
            <div class="card">
                <div class="card-header"><b>Tambah Data Buku</b></div>

                <div class="card-body">
                    <form action="/buku/save" method="POST">
                        @csrf
                        <div class="mb-3">
                            <label class="form-label">Judul Buku</label>
                            <input type="text" class="form-control" name="judul" placeholder="Belajar Laravel 9">
                        </div>
                        <div class="mb-3">
                            <label class="form-label">Nama Penulis</label>
                            <input type="text" class="form-control" name="penulis" placeholder="Abdul Rahman, M.Kom">
                        </div>
                        <div class="mb-3">
                            <label class="form-label">Penerbit Buku</label>
                            <input type="text" class="form-control" name="penerbit" placeholder="Informatika Fakultas Teknik dan Komputer Universitas Baturaja">
                        </div>
                        <div class="mb-3">
                            <label class="form-label">Tahun Terbit</label>
                            <input type="text" class="form-control" name="tahun_terbit" placeholder="2022">
                        </div>
                        <a href="/buku" class="btn btn-warning me-2">Kembali</a>
                        <button type="submit" class="btn btn-info">Simpan</button>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Selanjutnya agar file create.blade.php bisa diakses, tambahkan function create di dalam Controller Buku

    public function create()
    {
        $data = [
            'title' => "Insert Data Buku"
        ];
        return view('buku.create')->with($data);
    }

Hasilnya adalah sebagai berikut :

Halaman tambah data buku

Selanjutnya agar data yang di inputkan bisa masuk kedalam database, didalam controller buku kita akan menambahkan sebuah function save

    public function save(Request $request)
    {
        //dd($request->except(['_token', 'submit']));
        //yang tidak masukan kedalam database adalah _token dan submit
        Buku::create($request->except(['_token', 'submit']));
        return redirect('/buku');
    }

Isinya adalah menampung semua inputan yang ada di halaman create kemudian akan di tambahkan ke dalam database dengan menjalankan Model Buku, isi Model buku adalah

class Buku extends Model
{
    use HasFactory;
    //untuk memberitahu laravel bahwa  
    protected $table = 'buku';

    //protected $fillable = ['id','judul','penulis','penerbit','tahun_terbit'];
    //jika field nya lebih dari 10 maka kita bisa menggunakan teknik seperti dibawah ini
    protected $guarded = [];
    //artinya guarded adalah semua field tidak ada yang dijaga, atau boleh di isi semuanya

}

Terakhir tambahkan route untuk menjalankan function save

Route::post('/buku/save', [BukuController::class, 'save']);

Database berhasil ditambahkan

Data buku dalam database
Halaman detail buku