Belajar Membuat Modul CRUD di Laravel 5

Laravel yang merupakan framework PHP MVC populer memiliki fitur bawaan yang mempermudah kita dalam membuat modul CRUD.

0
164
Logo Laravel

Setelah beberapa waktu yang lalu kita berhasil menjalankan Laravel + Xampp di Windows. Kali ini kita akan belajar memahami dasar pemrograman, yaitu CRUD alias Create, Read, Update, Delete. Yaitu modul yang digunakan oleh sebuah aplikasi. Oleh karena itu memahaminya bisa dibilang menjadi suatu keharusan.

Kita akan belajar membuat modul crud sederhana dengan framework Laravel 5 (pada saat tulisan ini dibuat, yang digunakan versi 5.6). Yaitu bagaimana membuat modul untuk menginput informasi, menyimpan, mengedit, dan juga menghapusnya. Untuk keperluan ini, Laravel yang merupakan framework PHP MVC populer memiliki fitur bawaan yang mempermudah kita dalam membuat modul CRUD.

Tahapan yang akan dilakukan yaitu:

  1. Install Laravel
  2. Konfigurasi database
  3. Membuat file model, controller, dan migration
  4. Konfigurasi file migration dan model
  5. Menambahkan Route
  6. Konfigurasi function Controller & Blade file
  7. Menjalankan aplikasi

Install Laravel

composer create-project --prefer-dist laravel/laravel belajar-laravel

Ingat, sebelum menjalankan perintah ini pastikan sudah menginstall composer.

Konfigurasi Database

Buatkan dulu database MySQL, dan masukkan informasi databasenya ke dalam file .env . Kalau belum ada, copy file .env.example dan beri nama file .env . Cari dan isikan bagian:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database
DB_USERNAME=username_mysql
DB_PASSWORD=password

Jangan lupa untuk merubah bagian DB_DATABASE, DB_USERNAME, DB_PASSWORD sesuai konfigurasi masing-masing.

Membuat file Model, Controller, dan Migration

Kita akan membuat file model, controller, dan file migration dengan menjalankan perintah berikut:

Model & Migration

php artisan make:model Post -m

Dengan tambahan -m Laravel juga akan membuat file migration selain membuat model.

Respon dibawah ini tanda kalau file model dan migration berhasil dibuat

Model created successfully.
Created Migration: 2018_04_21_043514_create_posts_table

Controller

php artisan make:controller PostController --resource --model=Post

Umumnya, file controller terdiri dari beberapa fungsi untuk menampilkan, menyimpan, update, dan hapus data. Agar Laravel otomatis membuat bagian-bagian tersebut, kita tambahkan –resource di perintahnya. Sedangkan –model=Post adalah perintah untuk menghubungkan PostController dengan Model Post.

Sebenarnya kita bisa menjalankan kedua hal diatas dengan satu perintah, namun terkadang kita hanya memerlukan sebuah controller tanpa perlu membuat model. Jadi sekaligus saya menunjukkan bagaimana membuat controller tanpa perlu membuat model.

Konfigurasi file migration & model

Sekarang kita akan konfigurasi file migration, yaitu file yang berfungsi untuk membuat table di database. Semua file migration disimpan di direktori database/migrations. Kita akan edit file migration untuk model Post. Nama filenya bisa dilihat saat kita membuat file model pada langkah sebelumnya, dalam tulisan ini berarti 2018_04_21_043514_create_posts_table.php . Edit sehingga menjadi seperti berikut

<?php 

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up() { Schema::create('posts', function (Blueprint $table) {
            $table->increments('id');
            $table->string('judul');
            $table->text('isi');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('posts');
    }
}

Kita jalankan migrate untuk membuat table di database.

php artisan migrate

Respon berikut menandakan Laravel berhasil membuat tabel di database:

Migration table created successfully.
Migrating: 2018_04_21_043514_create_posts_table
Migrated: 2018_04_21_043514_create_posts_table

Sekarang kita akan mengedit file modelnya. Secara default, file model terletak di direktori app. Di langkah sebelumnya modelnya kita beri nama Post, kita akan cari file Post.php di folder app. Edit file tersebut sehingga menjadi

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = [
        'judul', 'isi'
    ];
}