Menggunakan .env ==5.0
(Diuji pada 5.5) (Berfungsi pada 8 )
Dalam .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database1
DB_USERNAME=root
DB_PASSWORD=secret
DB_CONNECTION_SECOND=mysql
DB_HOST_SECOND=127.0.0.1
DB_PORT_SECOND=3306
DB_DATABASE_SECOND=database2
DB_USERNAME_SECOND=root
DB_PASSWORD_SECOND=secret
Di config/database.php
'mysql' => [
'driver' => env('DB_CONNECTION'),
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
],
'mysql2' => [
'driver' => env('DB_CONNECTION_SECOND'),
'host' => env('DB_HOST_SECOND'),
'port' => env('DB_PORT_SECOND'),
'database' => env('DB_DATABASE_SECOND'),
'username' => env('DB_USERNAME_SECOND'),
'password' => env('DB_PASSWORD_SECOND'),
],
Catatan: Di
mysql2jika DB_username dan DB_password sama, maka Anda dapat menggunakanenv('DB_USERNAME')yang disebutkan dalam.envbeberapa baris pertama.
Tanpa .env <5.0
Tentukan Koneksi
app/config/database.php
return array(
'default' => 'mysql',
'connections' => array(
# Primary/Default database connection
'mysql' => array(
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => 'database1',
'username' => 'root',
'password' => 'secret'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
# Secondary database connection
'mysql2' => array(
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => 'database2',
'username' => 'root',
'password' => 'secret'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
);
Skema
Untuk menentukan koneksi mana yang akan digunakan, cukup jalankan connection() metode
Schema::connection('mysql2')->create('some_table', function($table)
{
$table->increments('id'):
});
Pembuat Kueri
$users = DB::connection('mysql2')->select(...);
Fasih
Setel $connection variabel dalam model Anda
class SomeModel extends Eloquent {
protected $connection = 'mysql2';
}
Anda juga dapat menentukan koneksi saat runtime melalui setConnection metode atau on metode statis:
class SomeController extends BaseController {
public function someMethod()
{
$someModel = new SomeModel;
$someModel->setConnection('mysql2'); // non-static method
$something = $someModel->find(1);
$something = SomeModel::on('mysql2')->find(1); // static method
return $something;
}
}
Catatan Berhati-hatilah dalam mencoba membangun hubungan dengan tabel di seluruh database! Hal ini dimungkinkan untuk dilakukan, tetapi dapat disertai dengan beberapa peringatan dan tergantung pada database dan/atau pengaturan database yang Anda miliki.
Dari Laravel Documents
Menggunakan Beberapa Koneksi Basis Data
Saat menggunakan beberapa koneksi, Anda dapat mengakses setiap connection melalui metode koneksi pada DB tatapan. name diteruskan ke connection metode harus sesuai dengan salah satu koneksi yang terdaftar di config/database.php . Anda file konfigurasi:
$users = DB::connection('foo')->select(...);
Anda juga dapat mengakses instans PDO dasar yang mentah menggunakan metode getPdo pada instans koneksi:
$pdo = DB::connection()->getPdo();
Tautan Berguna
- Laravel 5 beberapa koneksi database DARI
laracasts.com - Hubungkan beberapa database di laravel DARI
tutsnare.com - Beberapa Koneksi DB di Laravel DARI
fideloper.com