Membuat form dan proses insert data mahasiswa
Tahapan yang biasa saya lakukan untuk melalukan proses CRUD (Create, Read, Update, Delete)
Operation adalah membuat route, model lengkap dengan migrationnya, controller dan view.
Untuk memulai tahapan yang sudah saya sebut diatas, buka file `web.php` yang berada
di folder routes.
`
Route::get('/mahasiswa/create', 'MahasiswaController@create');
`
Dapat diartikan route yang telah kita buat diatas seperti berikut:
jika mengakses url ‘mahasiswa/create’ maka route akan memerintahkan controller
dengan method create untuk merespon request dari url tersebut.
Sebelum lanjut membuat controller, kita akan membuat model dan migration agar kita
dapat melakukan CRUD Operation dengan database. Buka terminal / cmd dan lakukan seperti
di bawah ini.
`
php artisan make:model Mahasiswa -m
`
Perintah diatas akan mengeksekusi membuat Model Mahasiswa, flag `-m` itu berarti
kita juga akan mengenerate file migration secara otomatis.

Selanjutkan kita akan membuat schema migration, buka file migration mahasiswa yang berada pada folder
migration

Dan tambahkan schemanya seperti berikut.
$table->bigIncrements('id');
$table->string('name');
$table->string('email');
$table->date('dob');
$table->text('address')->nullable();
$table->timestamps();
Dari schema di atas, id akan menjadi primary key secara default. Selanjutkan lakukan perintah berikut untuk
mengenerate schema yang sudah kita buat ke dalam database.
“
php artisan migrate
“
Maka hasilnya akan seperti ini

Masih di terminal / cmd sekarang kita akan mengenerate controller dengan perintah
“
php artisan make:controller MahasiswaController
“
Setelah selesai mengenerate controller kita buka MahasiswaController yang sudah kita buat tadi, file controller
akan terdapat pada folder `app\Http\Controllers`. Buat function bernama create seperti yang sudah kita inisialisasi
diroute.

didalam function create diatas, si function create ini akan mengirim perintah ke view untuk menampilkan file
create.blade.php dalam folder mahasiswa. Selanjutnya kita buat file view create di dalam folder mahasiswa, untuk view laravel
berada pada folder resources\views\.

buka view yang sudah kita buat tadi, dan isikan seperti berikut
“
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Tambah Mahasiswa</div>
<div class="card-body">
<form method="POST" action="/mahasiswa">
@csrf
<div class="form-group">
<label>Nama Lengkap</label>
<input type="text" class="form-control" name="name" value="{{ old('name') }}">
</div>
<div class="form-group">
<label>Email</label>
<input type="email" class="form-control" name="email" value="{{ old('email') }}">
</div>
<div class="form-group">
<label>Tanggal Lahir</label>
<input type="date" class="form-control" name="dob" value="{{ old('dob') }}">
</div>
<div class="form-group">
<label>Alamat</label>
<textarea name="address" class="form-control" cols="30" rows="10">{{ old('addres') }}</textarea>
</div>
<div class="form-group">
<button class="btn btn-primary">Simpan</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
Saat tombol submit di tekan maka akan melakukan action ke route /mahasiswa dengan method POST, tidak lupa menambahkan
@csrf kedalam form yaitu token based dari laravel. Tanpa @csrf kita tidak dapat menginsert data selanjutnya kembali lagi
ke route dan tambahkan route mahasiswa dengan methodnya post seperti berikut.
`
Route::post('/mahasiswa', 'MahasiswaController@store');
`
Kembali lagi ke controller dan buat method dengan nama store untuk melakukan proses insert dari form ke database
<?php
namespace App\Http\Controllers;
use App\Mahasiswa;
use Illuminate\Http\Request;
class MahasiswaController extends Controller
{
public function create()
{
return view('mahasiswa.create');
}
public function store()
{
Mahasiswa::create([
'name' => request('name'),
'email' => request('email'),
'dob' => request('dob'),
'address' => request('addres')
]);
return redirect()->back();
}
}
Maka controller kita akan seperti ini. Mahasiswa::create itu dapat di artikan seperti `insert into mahasiswa` kalau kita
menggunakan sql query biasa. `request(‘name’)` itu berarti kita mengambil value dari view dengan name=”name” dan seterusnya.
Setelah itu kita akan me return kembali ke view create dengan return redirect()->back().
Yang terakhir buka Model Mahasiswa dan beri guarded = [], agar kita dapat menginsert semua value ke dalam database.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Mahasiswa extends Model
{
protected $guarded = [];
}
Setelah teman-teman isi form dan klik simpan, check database untuk membuktikan apakah data sudah berhasil di insert.

