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 :
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