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.
Komentar
Posting Komentar