Multiple Database Connection di Laravel dengan MySQL
Laravel memungkinkan untuk membuat koneksi ke beberapa database dengan DBMS yang berbeda. Laravel memiliki dukungan bawaan untuk beberapa sistem basis data, kita hanya perlu memberikan detail koneksi dalam file konfigurasi basis data laravel.
Laravel adalah kerangka kerja PHP sumber terbuka gratis yang dibuat oleh Taylor Otwell . Framework ini mengikuti pola desain Model-View-Controller (MVC). Laravel menggunakan kembali komponen kerangka kerja berbeda yang ada yang membantu membuat aplikasi web yang sempurna dan luar biasa. Jika kamu terbiasa dengan PHP, menggunakan framework akan membuat tugas lebih mudah. Laravel memiliki tingkat keamanan dan mencegah serangan web menggunakan perlindungan CSRF (Cross-site Request Forgery).
Saat mengembangkan aplikasi web terkadang kita perlu menggunakan banyak basis data karena persyaratan proyek atau proyek skala besar, saat ini laravel memungkinkan untuk menggunakan banyak koneksi basis data. Kita dapat dengan mudah mempelajari cara menggunakan banyak basis data dengan laravel di blog ini.
Langkah 1 : Mendefinisikan Koneksi Database di File Konfigurasi
Pertama definisikan detail koneksi dengan menambahkan baris ini di file .envDB_HOST_SECOND="DB HOST HERE" DB_PORT_SECOND="DB PORT HERE" DB_DATABASE_SECOND="DATABASE NAME HERE" DB_USERNAME_SECOND="DB USERNAME HERE" DB_PASSWORD_SECOND="DB PASSWORD HERE"
Seperti yang kita lihat, kita dapat menggunakan beberapa jika ingin menggunakan lebih banyak database, kita juga dapat menggunakan mesin database lainnya. Disini kita menggunakan MySQL.
Langkah 2 : Mengkonfigurasi Database Tambahan di file config/database.php
<?php return [ 'connections'=>[ 'mysql'=>[ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), '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', ''), ], //ini adalah koneksi database yang kedua 'mysql_second'=>[ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' => env('DB_HOST_SECOND', '127.0.0.1'), 'port' => env('DB_PORT_SECOND', '3306'), 'database' => env('DB_DATABASE_SECOND', 'forge'), 'username' => env('DB_USERNAME_SECOND', 'forge'), 'password' => env('DB_PASSWORD_SECOND', ''), ] ] ]; ?>
Langkah 3 : Membuat Schema , Query , dan Eloquent Model
Schema BuilderDengan Schema Builder, kita dapat menggunakan koneksi apa pun hanya dengan menjalankan metode connection() :
Schema::connection('mysql_second')->create('table_name', function($table){ // tulis kode disini });Query Builder
Mirip dengan Schema Builder, kita dapat menentukan koneksi di Query Builder :
$posts = \DB::connection('mysql_second')->select('id','name')->get();Eloquent Model
Mirip dengan Query Builder, kita dapat menentukan koneksi di Model Eloquent :
<?php namespace App\Models; class Post extends Eloquent { protected $connection = 'mysql_second'; } ?>Selain itu, kita dapat menggunakan koneksi dalam kueri gabungan kustom (joint table) dengan contoh sederhana ini :
\DB::table('posts')->join('mysql_second.types as secondDbType','posts.code','=','secondDbType.code')->first();