Lumen otomatis menggunakan konfigurasi .env
, untuk default connectionnya. Bila ada kebutuhan khusus untuk menggunakan konfigurasi database, karena di Lumen 7 tidak ada folder config. Maka buat terlebih folder config
mkdir config
lalu buat file database.php
<?php return [ 'default' => 'mysql', 'connections' => [ 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST'), 'database' => env('DB_DATABASE'), 'username' => env('DB_USERNAME'), 'password' => env('DB_PASSWORD'), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', ], 'mysql2' => [ 'driver' => 'mysql', 'host' => env('DB2_HOST'), 'database' => env('DB2_DATABASE'), 'username' => env('DB2_USERNAME'), 'password' => env('DB2_PASSWORD'), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', ], ] ];
settingan untuk database tersebut diambil dari .env
, .env
untuk database seperti contoh dibawah ini
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=jaranguda_api DB_USERNAME=jaranguda_api DB_PASSWORD=xVLojgKnmm7iuEcVCCLf DB2_CONNECTION=mysql DB2_HOST=127.0.0.1 DB2_PORT=3306 DB2_DATABASE=jaranguda_admin DB2_USERNAME=jaranguda_admin DB2_PASSWORD=RL4cNnnMifNAFdPcxWvJ
Contoh penggunaan database di Lumen
# database 1 $data = \DB::connection('mysql')->table('harga_minyak')->select('harga')->where('status', 'jual')->orderBy('created_at', 'desc')->first(); # database 2 $harga = \DB::connection('mysql2')->table('mobil')->select('bulan')->where('status', 'aktif')->orderBy('created_at', 'desc')->first();
Cara ini tidak terbatas hanya pada database yang sama, bisa saja digunakan untuk MySQL dan SQLite atau PostgreSQL.
# Cara penggunaan pada eloquent :
protected $connection = ‘mysql’;
or
protected $connection = ‘mysql2’;