Ditulisan saya sebelumnya kita sudah berhasil melakukan proses insert, tapi bagaimana jika form kita
tidak di isi suatu value apapun ? Tentu saja akan mengalami error karna didatabase kita mendefinisikan
beberapa column tidak boleh kosong / harus terdapat value. Bagaimana mensiasati agar user harus melengkapi
inputan mereka ? Salah satunya dengan validasi.
Pertama kita akan membuat form request menggunakan `artisan` command, caranya sebagai berikut:
“
php artisan make:request MahasiswaRequest
“

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class MahasiswaRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required',
'email' => 'required|email',
'dob' => 'required|date',
];
}
}
required disini berarti memberi validasi agar inputan tidak boleh kosong. Update controller kita menjadi seperti berikut :
<?php
namespace App\Http\Controllers;
use App\Http\Requests\MahasiswaRequest;
use App\Mahasiswa;
use Illuminate\Http\Request;
class MahasiswaController extends Controller
{
public function create()
{
return view('mahasiswa.create');
}
public function store(MahasiswaRequest $request)
{
Mahasiswa::create([
'name' => request('name'),
'email' => request('email'),
'dob' => request('dob'),
'address' => request('addres')
]);
return redirect()->back();
}
}
Kita tambahkan MahasiswaRequest ke dalam function store. Untuk menampilan pesan error dihalaman create kita buat file baru
dengan nama `errors.blade.php` di folder `resources\views\errors’.

@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Dan terakhir kita akan panggil file errors menggunakan (@include) di file `mahasiswa\create` kita
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
@include('errors.errors')
<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
Dan tada.. Validasi pada form kita berhasil.
