Tutorial Sebelumnya:
Tutorial Laravel #10: Membuat Login pada Laravel
Tutorial Laravel #11: Membuat Register pada Laravel
Pada Tutorial Laravel kali ini kita akan Belajar CRUD pada Laravel.
CRUD adalah singkatan yang berasal dari Create, Read, Update, dan Delete, dimana keempat istilah tersebut merupakan fungsi utama yang nantinya diimplementasikan ke dalam database.
Fungsi create, read, update, dan delete merupakan fungsi yang secara konstan digunakan dan merupakan bagian yang tidak terpisahkan dari pekerjaan seorang programmer.
Tutorial CRUD Laravel yang pertama kita pelajari adalah Insert atau Add Data. Kita akan membahas cara Insert atau Add Data pada Laravel.
Baca Juga:
Tutorial Laravel #13: Insert atau Add Data pada Laravel (Menggunakan Ajax)
Menginput Data ke Database dengan Laravel
Tutorial ini adalah lanjutan dari tutorial sebelumnya Membuat Login dan Register pada Laravel.
Sebelumnya kita sudah membuat project laravel dengan nama ANISA (Aplikasi Nilai Santri), database yang digunakan dengan nama anisa_db.
Kita sudah mempunyai user dengan hak akses Administrator. Berikut tampilan jika administrator berhasil login.
Perhatikan gambar di atas pada Menu Santri, menu ini digunakan untuk menampilkan, menambahkan, mengubah dan menghapus data santri. Kita akan menyelesaikan CRUD pada menu santri ini terlebih dahulu.
1. Sekarang silahkan buat tabel baru dengan nama tabel santri.
Field-field dari table santri seperti berikut:
2. Selanjutnya kita membuat Model untuk tabel santri, jalankan perintah berikut:
php artisan make:model SantriModel
Maka model berhasil dibuat dengan nama SantriModel.php dalam direktori app/Models/SantriModel.php
Berikut kode full dari model SantriModel.php:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Santri extends Model
{
use HasFactory;
protected $table = 'santri';
protected $primaryKey = 'id_santri';
protected $fillable = ['nm_santri', 'tmp_lahir', 'tgl_lahir', 'alamat', 'no_hp'];
}
Perhatikan kode Model di atas, pada bagian kode program protected $table = 'santri'
digunakan ketika penamaan tabel yang akan digunakan tidak sesuai dengan aturan baku penamaan tabel sesuai Eloquent. Jika kita mengikuti naming convention dari Laravel, umumnya properti ini tidak perlu didefinisikan. Sebagai contoh, kita punya model dengan nama class User
, maka Eloquent menganggap nama tabelnya adalah users
.
Pada bagian kode program protected $primaryKey = 'id_santri'
Eloquent akan mengganggap atribut id
dalam tabel sebagai primary key dan mengkonversinya (cast) menjadi tipe data integer
. Jika selain itu, gunakan properti $primaryKey
untuk menjelaskan kepada Eloquent kalau kita menggunakan nama atribut yang lain.
Pada bagian kode program protected $fillable
Properti yang satu ini punya fungsi untuk mendaftarkan atribut apa saja yang sekiranya dapat disimpan atau dimanipulasi menggunakan create()
atau insert()
.
3. Tahap selanjutnya adalah membuat Route. Buka file web.php pada folder routes/web.php, tambahkan kode route seperti di bawah ini:
use App\Http\Controllers\SantriController;
Route::get('santri/tampil', [SantriController::class, 'tampilsantri'])->name('tampilsantri')->middleware('auth');
Route::get('santri/tambah', [SantriController::class, 'tambahsantri'])->name('tambahsantri')->middleware('auth');
Route::post('santri/simpan', [SantriController::class, 'simpansantri'])->name('simpansantri')->middleware('auth');
Perhatikan kode Routes di atas, pada bagian kode program use App\Http\Controllers\SantriController
agar SantriController dapat digunakan pada route kita.
Pada route yang pertama Route::get('santri/tampil'...
digunakan untuk menampilkan view data santri dengan method get.
Kemudian pada route yang ke dua Route::get('santri/tambah'...
untuk menampilkan view input santri dengan method get.
Terakhir pada route Route::post('santri/simpan'...
adalah route untuk menyimpan data santri dengan method yang digunakan adalah post.
4. Berdasarkan route di atas kita akan membuat controller dengan nama SantriController.
Untuk membuat controller jalankan perintah berikut:
php artisan make:controller SantriController
Maka controller berhasil dibuat dengan nama file SantriController.php pada direktori app/Http/Controllers/SantriController.php
Isi dari SantriController.php adalah sebagai berikut:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\SantriModel;
class SantriController extends Controller
{
public function tampilsantri()
{
return view('tampilsantri');
}
public function tambahsantri()
{
return view('tambahsantri');
}
public function simpansantri(Request $request)
{
$santri = SantriModel::create([
'nm_santri' => $request->nm_santri,
'tmp_lahir' => $request->tmp_lahir,
'tgl_lahir' => $request->tgl_lahir,
'alamat' => $request->alamat,
'no_hp' => $request->no_hp,
]);
return redirect()->route('tampilsantri');
}
}
Perhatikan kode Controller di atas, pada bagian kode program use App\Models\SantriModel
untuk memangil model santri karena kita akan menggunakan saat insert data.
Pada bagian kode program function tampilsantri
digunakan untuk membuat tombol Tambah Santri Baru dan menampilkan semua data santri, untuk menampilkan data pada laravel akan kita bahas pada tutorial selanjutnya. Sekarang kita buat hanya tombol tambahnya dulu.
Pada bagian kode program function tambahsantri
digunakan untuk menampilkan form input santri setelah tombol tambah di klik.
Pada bagian kode program function simpansantri(Request $request)
digunakan untuk menangkap data yang dikirimkan dari form tambah santri.
Cara menangkap data di sini kita menangkap datanya di dalam parameter fungsi store(). kita beri keterangan Request. di ikuti dengan nama variabel yang ingin kita jadikan sebagai penyimpan data yang dikirim dari form. di sini kita menyimpannya dalam variabel $request.
Kemudian tinggal kita insert data nya ke table santri dengan menggunakan query builder laravel untuk insert data, terdapat pada bagian kode program berikut:
$santri = SantriModel::create([
'nm_santri' => $request->nm_santri,
'tmp_lahir' => $request->tmp_lahir,
'tgl_lahir' => $request->tgl_lahir,
'alamat' => $request->alamat,
'no_hp' => $request->no_hp,
]);
Dan bagian yang paling terakhir nya setelah kita menginput datanya ke table santri, maka kita perintahkan untuk mengalihkan halaman kembali ke halaman santri atau ke route santri, di tunjukkan pada bagian kode berikut:
return redirect()->route('tampilsantri');
5. Selanjutnya kita Membuat view.
Kita telah menggunakan Sistem blade Template Laravel pada project kita, untuk melihat file master.blade.php lihat pada tutorial sebelumnya Membuat Login Laravel.
Kita tinggal membuat file view tampilsantri.blade.php seperti berikut:
@extends('master')
@section('konten')
<h3>Tampil Data Satri</h3>
<a class="btn btn-success" href="{{route('tambahsantri')}}"><i class="fa fa-plus"></i> Tambah Santri</a>
@endsection
Kemudian file view tambahsantri.blade.php isinya seperti bekrikut ini:
@extends('master')
@section('konten')
<h3>Form Input Santri</h3>
<form method="post" action="{{route('simpansantri')}}">
@csrf
<div class="form-group">
<label>Nama Santri</label>
<input type="text" name="nm_santri" class="form-control" placeholder="Nama Santri" required="">
</div>
<div class="form-group">
<label>Tempat Lahir</label>
<input type="text" name="tmp_lahir" class="form-control" placeholder="Tempat Lahir" required="">
</div>
<div class="form-group">
<label>Tanggal Lahir</label>
<input type="date" name="tgl_lahir" class="form-control" placeholder="Tanggal Lahir" required="">
</div>
<div class="form-group">
<label>Alamat</label>
<textarea name="alamat" rows="3" class="form-control" placeholder="Alamat" required=""></textarea>
</div>
<div class="form-group">
<label>No. Hp</label>
<input type="text" name="no_hp" class="form-control" placeholder="No. Hp" required="">
</div>
<div class="form-group text-right">
<button type="submit" class="btn btn-primary"><i class="fa fa-save"></i> Simpan Data</button>
</div>
</form>
@endsection
Perhatikan kode view di atas, untuk action form nya kita buat di arahkan ke route ‘simpansantri‘. karena kita ingin nanti route ‘ simpansantri ‘ yang akan menangani pemprosesan data yang di input. agar bisa di olah oleh controller.
Di dalam form kita juga telah membuat beberapa buah form inputan, yaitu ada nama, tempat lahir, tanggal lahir, alamat dan no hp. sesuai dengan format table santri yang sudah kita buat sebelumnya.
Pada bagian code program @csrf
merupakan salah satu fitur laravel yaitu CSRF protection. CSRF protection adalah fitur keamanan untuk pencegahan penginputan data dari luar aplikasi atau sistem kita.
Laravel sudah menginclude fitur ini secara otomatis, hanya dengan menambahkan perintah @csrf seperti di atas, maka laravel akan otomatis meng-generate kode token otomatis, yang di buat dalam bentuk form hidden, seperti berikut ini:
<input type="hidden" name="_token" value="QQtzCXZYXGeWiPHoK4MJ62rtfSlex9gPqQganbv2">
Setelah selesai, sekarang coba kita jalankan.
Akses localhost:8000/santri/tampil
dan klik Tambah Santri Baru. maka akan di alihkan ke halaman Form Input Santri.
Coba isi beberapa data percobaan. dan klik tombol Simpan Data.
Untuk mengecek apakah berhasil tersimpan, lihat database Anda dan buka tabel santri.
Dan datapun berhasil tersimpan ke table santri.
Kita telah berhasil Menginput Data ke Database dengan Laravel, pada tutorial selanjutnya kita akan belajar Menampilkan Data dari database dengan Laravel.
Tutorial Selanjutnya:
Tutorial Laravel #14: Menampilkan Data pada Laravel
Tutorial Laravel #15: Menampilkan Data pada Laravel (Menggunakan Ajax)
mas mau tanya, ini kenapa Class ‘App\Models\MahasiswaModel’ not found ya? (santri nya saya ganti semua dengan mahasiswa)
class Santri extends Model
diganti class SantriModel extends Model
Artikelnya sangat membantu dan Tutorialnya sangat mendetail sekali, yang ingin saya tanyakan apakah ada tutorial cara menambahkan di tentah posting “Baca juga:” untuk laravel, saya baru menggunakan laravel dari script varient.
Jika ada link tutorialnya mas Arie
Salam Sukses Selalu
Semoga Makin Bertambah Ilmunya.
ajaxnya mana