Lumen, Basic Database

Pada tulisan kali ini, penulis akan membahas basic koneksi dan query ke database menggunakan micro framework lumen. Karena lumen ini merupakan saudara dari laravel maka kebanyakan juga akan sama dengan laravel.

Yang berbeda adalah untuk konfigurasinya menggunakan sebuah file dengan nama .env, silahkan rename .env.example menjadi .env kemudian edit bagian:


DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=testlumen
DB_USERNAME=db_username
DB_PASSWORD=db_password

Sebenarnya lumen sudah mendukung beberapa database, tapi untuk yang paling simpel gunakan saja mysql.

Setelah itu jangan lupa uncomment baris

Dotenv::load(__DIR__.'/../');

di boostrap/app.php

Jika ingin menggunakan DB Facade laravel maka uncomment

$app->withFacades();

Atau yang dibawah ini jika ingin menggunakan Eloquent

$app->withEloquent();

Untuk yang sekarang ini kita uncomment yang facade saja.

Sebelum mulai membuat query yang pertama perlu dilakukan adalah dengan membuat database dan tabel, diasumsikan database sudah dibuat maka kita tinggal membuat tabel saja. Untuk hal ini kita bisa memanfaatkan fitur migration yang ada pada laravel.

Untuk di lumen ini ternyata folder database/migrations belum ada, sehingga perlu dibuat secara manual agar kita bisa membuat migration:

$ mkdir database
$ mkdir database/migrations

Setelah itu jalankan perintah nya:

 $ php artisan make:migration create_users_table –create=tests

Created Migration: 2015_04_16_080319_create_users_table

Perintah diatas akan membuat file migration dengan nama tabel “tests”.

Kemudian buka file database/migrations/2015_04_16_075820_create_tests_table.php dan edit file tersebut untuk menambah field baru pada tabel yang akan dibuat, lebih jelas nya silahkan merujuk ke http://laravel.com/docs/5.0/schema

Sebagai contoh pada fungsi up() menjadi seperti dibawah:

Schema::create('tests', function(Blueprint $table)
{
	$table->increments('id');
	$table->char('name', 25);
	$table->string('email');
	$table->timestamps();
});

Kemudian jalankan migrasinya:

$ php artisan migrate

Maka tabel dengan nama “tests” akan dibuat di database “testlumen”.

Setelah itu kita bisa mulai membuat query untuk uji coba. Berikut contoh beberapa query yang dijadikan dalam satu controller:

<?php
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use DB;

class CobaController extends Controller {
	public function index() {
		return "halaman index";
	}

	public function insert() {
		DB::insert('insert into tests (name, email, created_at, updated_at) values (?, ?, ?, ?)', ['Harry', '[email protected]', date("Y-m-d H:i:s"), date("Y-m-d H:i:s")]);
	}

	public function select() {
		$results = DB::select('select * from tests');

		print_r($results);
	}

	public function update() {
		DB::update('update tests set email = "[email protected]" where name = ?', ['Harry']);
	}

	public function delete() {
		DB::delete('delete from tests where email name = ?', ['[email protected]']);
	}
}

Kemudian tambahkan di routes.php

$app->get('/db', 'App\Http\Controllers\[email protected]');
$app->get('/db/insert', 'App\Http\Controllers\[email protected]');
$app->get('/db/select', 'App\Http\Controllers\[email protected]');
$app->get('/db/update', 'App\Http\Controllers\[email protected]');
$app->get('/db/delete', 'App\Http\Controllers\[email protected]');

Untuk uji coba buka browser dan alamatkan ke http://lumen.dev/db/insert dan seterusnya.

Oya untuk contoh-contohnya nya masih basic sekali, belum ada input dengan form bahkan hasil query select saja hanya di print_r. Setidaknya basic untuk melakukan proses ke database sudah bisa dilihat.

 

happy coding

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

This site uses Akismet to reduce spam. Learn how your comment data is processed.