Custom Validasi pada Laravel

Selamat datang kembali di website asepit yang selalu memberikan informasi - informasi mengenai dunia teknologi khususnya pada bidang Komputer dan Jaringan. Bagaimana kabar kalian semua semoga dalam keadaan sehat wal afiat dan selalu dimudahkan rezekinya, Pembahasan kali ini mengenai cara membuat Custom Validasi pada Laravel. Validasi sendiri merupakan sebuah hal yang perlu dibuat dalam membuat sebuah aplikasi untuk tujuan menyamakan persepsi yang hendak dilakukan oleh pengguna yang dimana Custom Validasi dapat dilakukan apabila kondisi yang diinginkan tidak ada pada rules yang telah disediakan. Untuk langkah - langkah cara membuat nya simaklah dibawah ini!

1. Buat terlebih dahulu controller 

php artisan make:controller BiodataController

2. Buka BiodataController dan tambahkan codingan seperti ini 


use App\Biodata;
use App\Http\Requests\UserFormRequest;
use Illuminate\Http\Request;

class BiodataController extends Controller
{
  /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
  public function index()
  {
    //
    $biodata = Biodata::all();
    return view('biodata.index', compact('biodata'));
  }

  Public function create()
  {
    //
    return view('biodata.create');
  }
  public function store(UserFormRequest $request)
  {
    //
    $this->validate($request,[
       'name' => 'required',
       'tgl_lahir' => 'required',
       'alamat' => 'required'
    ]);

    $biodata = new Biodata();
    $biodata->name = $request->name;
    $biodata->tgl_lahir = $request->tgl_lahir;
    $biodata->alamat = $request->alamat;
    $biodata->save();

    return redirect()->route('biodata.index');
  }
}
 

3. Membuat request custom dengan perintah dibawah ini

php artisan make:request UserFormRequest

4. Lanjut untuk menambahkan sedikit perubahan pada UserFormRequest


namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;

class UserFormRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/

publicfunctionauthorize()
{
returnAuth::check();
}

/**
* Get the validation rules that apply to the request.
*
* @return array
*/
publicfunctionrules()
{
return [
'name'=>'required',
'tgl_lahir'=>'required|date_format:Y-m-d',
'alamat'=>'required'
];
}

//
publicfunctionmessages()
{
return [
'name.required'=>' Jangan kosong',
'tgl_lahir.required'=>'Format Tanggal harus Y-m-d',
'alamat.required'=>'Alamat jangan kosong',
];
}
}

5. Buka file resources/lang/en/validation.php ubahlah pada ' date_format ' seperti ini

'date_format' => 'Format tanggal harus Y-m-d',

6. Untuk view index.blade.php kurang lebih seperti ini

@extends('layouts.app')

@section('content')
<div class="flex-center position-ref full-height">
<div class="text-center">
<table class="table table-striped table-bordered" cellspacing="0" width="50%">
<thead>
<tr>
<th>Nama</th>
<th>Tanggal Lahir</th>
<th>Alamat</th>
</tr>
</thead>
<tbody>

@foreach($biodataas$bio)
<tr>
<td>{{$bio->name}} </td>
<td>{{$bio->tgl_lahir}} </td>
<td>{{$bio->alamat}} </td>
</tr>
@endforeach
</tbody>
</table>
<div class="text-right">
<a href="{{ route('home') }}" class="btn btn-warning">Kembali</a>
</div>
</div>
</div>
@endsection

7. Dan untuk view create.blade.php kurang lebih seperti ini

@extends('layouts.app')

@section('content')
<div class="flex-center position-ref full-height">
 <div class="text-center">
  <h1>Form Pendaftaran</h1>
  <form action="{{ route('biodata.store') }}" method="post">
    @csrf
    <div class="form-group">
      <label for="name">Nama</label>
      <input type="text" name="name">
      <p>{{ $errors->first('name') }}</p>
    </div>
    <div class="form-group">
      <label for="tgl_lahir">Tanggal Lahir</label>
      <input type="text" name="tgl_lahir">
      <p>{{ $errors->first('tgl_lahir') }}</p>
    </div>
    <div class="form-group">
      <label for="alamat">Alamat</label>
      <input type="text" name="alamat">
      <p>{{ $errors->first('alamat') }}</p>
    </div> 
    <div class="text-center">
      <button type="submit" class="btn btn-success"> Simpan</button>
      <a href="{{ route('home') }}" class="btn btn-secondary"> Kembali</a>
    </div>
   </form>
  </div>
</div>
@endsection

8. Dan untuk hasil nya kurang lebih seperti ini

custom validate

Jika salah memasukkan format atau tidak diisi maka akan muncul seperti ini

custom validation

Selesai...

 

 

Laravel yang saya gunakan disini versi 5.6.x dan cocok diterapkan langsung pada projek yang sedang dikerjakan ataupun untuk mengcustom projek yang sudah jadi. Semoga dapat bermanfa'at bagi kita semua terutama bagi saya sendiri, mungkin hanya itu untuk pembahasan kali ini mohon ma'af bila terdapat kesalahan dalam penulisan ataupun penyampaian saya. Cukup sekian dan Terima Kasih...!!!

Related Articles

Comments