Tutorial Laravel 5.5 - Cara Menghubungkan Banyak / Multiple Database pada Laravel

Post a Comment

Pada artikel kali ini akan dijelaskan bagaimana cara untuk menghubungkan program Laravel dengan beberapa database sekaligus. Dalam kasus ini saya memberi contoh menghubungkan 2 database dengan jenis berbeda yaitu MySQL dan SQL Server. Ada kalanya kita membuat program yang membutuhkan lebih dari 1 database dalam pembuatannya. Laravel sudah menyediakan cara yang cukup mudah untuk mengatasi hal tersebut.


#KONFIGURASI KONEKSI DATABASE

Langkah pertama yang perlu kita lakukan adalah membuat koneksinya terlebih dahulu. Bukalah file database.php yang terdapat di dalam direktori config. Berikut ini adalah contoh kode yang saya gunakan :

        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

        'sqlsrv' => [
            'driver' => 'sqlsrv',
            'host' => env('DB_HOST'_2, 'localhost'),
            'port' => env('DB_PORT'_2, '1433'),
            'database' => env('DB_DATABASE_2', 'forge'),
            'username' => env('DB_USERNAME_2', 'forge'),
            'password' => env('DB_PASSWORD_2', ''),
            'charset' => 'utf8',
            'prefix' => '',

        ],

Di sini seperti penjelasan saya sebelumnya, saya menggunakan database MySQL dan SQL Server di mana 'mysql' dan 'sqlsrv' merupakan nama koneksi. Silahkan membuat nama koneksi sesuka anda tidak perlu persis seperti contoh saya di atas. Saya menggunakan variabel env dengan tambahan _2 untuk membedakan koneksi database 1 dengan koneksi database 2. Dan tentu saja penamaan variabel ini tidak harus sesuai dengan contoh yang saya gunakan.

Setelah selesai melakukan konfigurasi koneksi database, langkah selanjutnya adalah melakukan konfigurasi database pada file .env seperti biasanya. Berikut ini contoh kode pada file .env :

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

DB_HOST_2=127.0.0.1
DB_PORT_2=1433
DB_DATABASE_2=homestead
DB_USERNAME_2=homestead
DB_PASSWORD_2=secret

Untuk variabel DB_CONNECTION bisa diisi bebas antara databse pertama atau database kedua. Sedangkan untuk variabel-variabel lainnya sesuaikan dengan konfigurasi database pada komputer anda seperti nama database, nama username dan password serta port yang digunakan. 


#CARA PENGGUNAAN

Sampai saat ini kita sudah selesai melakukan semua konfigurasi koneksi yang diperlukan. Sekarang saya akan menjelaskan bagaimana cara penggunaannya. 

<?php
class SomeController extends BaseController {
    public function someMethod()
    {
        $someModel = new SomeModel;
        $someModel->setConnection('mysql');
        $something = $someModel->find(1);

        $someModel_2 = new SomeModel_2;
        $someModel_2->setConnection('sqlsrv');
        $something_2 = $someModel_2->find(1);

    }

}

Baris kode di atas adalah contoh bagaimana menerapkan multi koneksi database ini. Fungsi setConnection inilah yang digunakan untuk menghubungkan program dengan koneksi database yang telah dibuat sebelumnya. Contoh kode di atas yang pertama adalah meload model dengan nama SomeModel, menghubungkannya dengan koneksi database mysql (MySQL) dan kemudian melakukan pencarian id 1 pada model SomeModel tersebut. Demikian juga untuk baris selanjutnya, program akan meload model SomeModel_2 yang terdapat pada koneksi database 2. Menghubungkan model tersebut dengan koneksi database sqlsrv (SQL Server) dan melakukan kemudian melakukan pencarian id 1 pada model SomeModel_2


Demikianlah penjelasan dari artikel Tutorial Laravel 5.5 - Cara Menghubungkan Banyak / Multiple Database pada Laravel ini. Anda juga dapat menghubungkan program dengan 2 database dengan jenis yang sama (misal sama-sama menggunakan MYSQL), anda hanya perlu memberikan nama koneksi yang berbeda pada konfigurasinya dan menggunakan cara yang sama untuk memanggilnya. Semoga penjelasan saya pada artikel ini dapat dihaman dan Terima Kasih. 

Related Posts

Post a Comment