Monday, August 1, 2022

Membuat CRUD Database Dengan Laravel - I [ Insert ]

 

Laravel merupakan sebuah framework yang menggunakan library Eloquent untuk management database, dengan demikian memakai insert, update & delete data di Laravel sangat mudah dibandingkan melakukan dengan cara manual dengan  PHP procedural.

Sebelum melakukan proses CRUD, maka perlu membuat model lebih dulu, berikut langkah - langkahnya :

Buat sebuah model beserta migration :

php artisan make:model Siswa --migration

Kemudian buat beberapa field pada migration .

$table->string('nis', 50);

$table->string('nama', 100);

Jalankan migration tersebut biar table siswa beserta field yang dibuat pada database.

php artisan migrate

Maka secara otomatis database dan table sudah terbuat, selanjutnya bisa melakukan insert, update serta delete  data di laravel.


Insert Data ke Database

Buat tampilan form sederhana untuk menampilkan beberapa kolom input.

Sebelum itu, buat controller, jalankan command di terminal.

php artisan make:controller FormController --resource

Catatan : Sintak tersebut akan menciptakan / membuat sebuah controller dengan nama FormController beserta beberapa method seperti index()create()edit()update(), dan destroy(). Dengan demikian maka perlu membuat method-method CRUD, karena sudah disediakan / dibuatkan oleh perintah --resource tersebut.

Buka file route web.php yang berada di folder routes, lalu tambahkan kode seperti dibawah :

Route::resource('form', FormController::class);

Sintak diatas menjadikan halaman utama project adalah halaman formulir sederhana.

Setelah itu,  buat file layout.simple.php di folder resources/views dan tambahkan kode dibawah ini.

<html>

    <head>

        <title>Form Simple </title>

        <style>

            .container {

                position: relative;

                width: 80%;

                margin: 0 auto;

            }

            form .group {

                margin-bottom: 10px;

            }

            form .group input {

                border: 1px solid #cccccc;

                border-radius: 4px;

                display: block;

                width: 100%;

                padding: 10px;

            }

            form .group .error {

                display: inline-block;

                color: #ff0000;

                margin-top: 5px;

            }

            form .group button.save {

                background-color: #4169E1;

                border: 1px solid #325cdb;

                color: #ffffff;

                padding: 10px;

                cursor: pointer;

                border-radius: 4px;

            }

            

            form .group button.cancel {

                background-color: #4169E1;

                border: 1px solid #325cdb;

                color: #ffffff;

                padding: 10px;

                cursor: pointer;

                border-radius: 4px;

            }


            table {

                border: 1px solid #cccccc;

                margin-top: 10px;

            }

            table tr td,

            table tr th {

                border-left: 1px solid #cccccc;

                padding: 10px;

            }

            table tr td:first-child,

            table tr th:first-child {

                border-left: 0;

            }

            table tr td {

                border-top: 1px solid #cccccc;

            }

        </style>

    </head>

    <body>

        <div class="container">

            @yield('content')

        </div>

    </body>

</html>


Kemudian buat file create.simple.php di folder resources/views dan tambahkan kode dibawah ini.

@extends('layout')

@section('content')

<h1 style="text-align: center">Tambah Data</h1>

@if(session()->has('message'))

    <p>{{ session()->get('message') }}</p>

@endif

<form action="{{ route('form.store') }}" method="POST">

    <input type="hidden" name="_token" value="{{ csrf_token() }}">

    <div class="group">

        <label for="nis">NIS</label>

        <input type="number" id="nis" name="nis" value="{{ old('nis') }}">

        @if($errors->has('nis'))

            <small class="error">{{ $errors->first('nis') }}</small>

        @endif

    </div>

    <div class="group">

        <label for="nama">Nama</label>

        <input type="text" id="name" name="nama" value="{{ old('nama') }}">

        @if($errors->has('nama'))

            <small class="error">{{ $errors->first('nama') }}</small>

        @endif

    </div>

    <div class="group">

        <a href="{{ route('form.index') }}">Batal</a>

        <button class="save">Simpan</button>

    </div>

</form>

@endsection

Kemudian file FormController di folder app/Http/Controllers/FormController.php pada bagian method create()  tambahkan kode berikut .

return view('create');

Kemudian jalankan perintah .

php artisan server

Setelah dijalankan buka browser dengan url http://127.0.0.1:8000/form/create maka akan ditampilkaan gambar seperti dibawah.


Setelah itu buat proses insert data, proses insert berada di method store() dalam file FormController, lalu masukan model Siswa pada FormController,  menambahkan kode dibawah.

use App\Models\Siswa; berada dibawah kalimat : use Illuminate\Http\Request;

maka akan seperti ini :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Models\Siswa;

class FormController extends Controller

{

    ..

}


Kemudian dibagian method store() buat :

public function store(Request $request)

{

    $request->validate([

        'nis' => 'required|numeric|digits_between:1,50|unique:siswas,nis,null,id',

        'nama' => 'required|string|min:1|max:100'

    ]);


    $siswa = new Siswa;

    $siswa->nis = $request->nis;

    $siswa->nama = $request->nama;


    if($siswa->save()) {

        return redirect()->route('form.index')->with('message', 'Data Siswa sudah ditambahkan ');

    } else {

        return redirect()->back()->with('message', 'Data Siswa Gagal Ditambahkan');

    }

}


Keterangan :

$request->validate() adalah untuk memvalidasi input form yang dikirim oleh user, dimana kedua form nis dan nama wajib, jika tidak di isi dengan benar akan menampilkan pesan error.


Penjelasan pada script dibawah adalah :

<meta charset="utf-8">'nis' => 'required|numeric|digits_between:1,50|unique:siswas,nis,null,id',

'nama' => 'required|string|min:1|max:100'

  • required,  field tersebut wajib di isi
  • numeric harus berupa angka numerik.
  • digits_between:1,50 digunakan untuk membatasi jumlah digit dari angka yang dimasukkan.
  • unique digunakan agar data yang ada didalam record database tidak sama.
  • string dimana kolom harus berupa string.
  • min dan max, untuk membatasi jumlah karakter yang dimasukkan user.

Apabila ada terjadi kesalahan proses submit, maka akan dikirim kembali ke halaman form dengan pesan Data Siswa Gagal Ditambahkan, jika berhasil kembali ke index form.

Memunculkan Simbol & Emoji Pada OS Mac

  Memunculkan Simbol & Emoji  1. Buka aplikasi Pages / Notes pada Macbook. 2. Klik pada Menubar Edit --> Pilih Emoji and Symbols a...