PHP LUMEN DATABASE DATABASE CONNECTION, DATABASE MIGRATION, MODEL

 PHP LUMEN DATABASE
DATABASE CONNECTION, DATABASE MIGRATION, MODEL

 

Tutorial ini melanjutkan project dari tutorial sebelum nya dengan nama ‘belajarLumen’. Kita akan membuat service menggunakan PHP Lumen yang bisa melakukan query ke database.

 

1.       Database Connection

Untuk melakukan setting database, mari kita ikuti langkah-langkah dibawah ini :

1)      Edit file bootstrap/app.php, uncomment:

$app->withFacades();
$app->withEloquent();
 


2)      Buka file .env. Ubah settingan dibawah ini sesuaikan dengan kebutuhan

DB_CONNECTION= mysql

DB_HOST=127.0.0.1 DB_PORT= 3306

DB_DATABASE= belajarLumen

DB_USERNAME= root

DB_PASSWORD= secret

 

3)      Create database dengan nama lumen_service_app, sesuai dengan settingan .env file.

 

2.       Database Migration

Database migration digunakan untuk melakukan DDL pada SQL database dengan menggunakan code PHP. Untuk membuat database migration, mari ikuti langkah-langkah dibawah ini :

1)      Pertama kita akan membuat table posts. Untuk membuat table posts jalankan script dibawah ini

php artisan make:migration create_posts_table

Kalau berhasil, tampilan terminalnya seperti ini

 


2)      Migration tersebut akan mebuat file di folder

2020_10_24_035310_create_posts_table

Nama file nya akan berbeda-beda, tapi patternya sama, yakni: [tahun]_[bulan]_[tanggal]_[randon_number]_create_posts_table.php

 

3)      Open file

database/migrations/[tahun]_[bulan]_[tanggal]_[randon_number]_create_posts_table.php, kemudian edit function up menjadi seperti ini (lihat line 19 - 22):

 

$table->string('title', 100);
$table->enum('status', array('draft','published'))->default('draft');
$table->text('content', 65535);
$table->integer('user_id')->index('user_id_foreign');

 

 

4)      Untuk mengubah code migration diatas ke dalam bentuk tabel di SQL database, jalankan script dibawah ini.

php artisan migrate

Kalau berhasil, tampilan terminal nya seperti ini

 


5)      Untuk pertama kali melakukan migration, kita akan dibuatkan satu table dengan nama migrations. Table ini digunakan Lumen untuk mencatat file migration mana saja yang sudah dijalankan.

 

6)      Kalau berhasil, maka di database kita akan ada dua table, dengan nama:

a. migrations

b. posts



3.       Model

Model digunakan untuk melakukan koneksi dan query ke Database. Untuk membuat model, mari ikuti langkah-langkah dibawah ini :

1)      Untuk memudahkan dalam memanage code, buat folder app/Models

2)      Buat file app/Models/Post.php, code nya seperti ini

<?php

 

namespace App\Models;

 

use Illuminate\Database\Eloquent\Model;

 

class Post extends Model

{

                // Post -> table_name = posts

                // custome table name :

                // protected $table='table_name'

               

                // define column name

                protected $fillable = array('title', 'content', 'status', 'user_id');

}

3)      Buat file controller app/Http/Controllers/PostsController.php, code nya seperti ini

<?php

 

namespace App\Http\Controllers;

 

use App\Models\Post;

 

class PostsController extends Controller

{

                public function index()

                {

                                $posts = Post::OrderBy("id", "DESC")->paginate(10);

                               

                                $outPut = [

                                                "message" => "posts",

                                                "results" => $posts

                                ];

                               

                                return response()->json($posts, 200);

                }

}

4)      Buka file routes/web.php, tambahkan code dibawah ini pada baris 33(terbawah)

$router->get('posts', 'PostsController@index');

5)      Buka di browser http://localhost:8000/posts, tampilanya seperti ini

 


6)      Silahkan Insert data ke table posts, kemudian buka kembali URL diatas

 


7)      Maka hasilnya akan seperti berikut

 

 

4.       API Client Tool

API client tool digunakan untuk mengakses API. Tool yang kita gunakan adalah Postman, silahkan install Postman dengan mengunjungi halaman ini https://www.getpostman.com.

Masukkan link  http://localhost:8000/posts

Dibawah ini adalah tampilan ketika mengakses API menggunakan Postman.



Selamat Mencoba :)



Komentar

Postingan populer dari blog ini

KONSEP, KELEBIHAN, KEKURANGAN CONTAINERIZATION BERSERTA TEKNOLOGI DAN STUDI KASUS CONTAINERIZATION

Mengapa Harus Belajar Cloud Computing ?

Setting Up VM and Domain