Lumen database error
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.

Join the Conversation

1 Comment

Your email address will not be published. Required fields are marked *

  1. # Cara penggunaan pada eloquent :

    protected $connection = ‘mysql’;
    or
    protected $connection = ‘mysql2’;