Rumah >rangka kerja php >Laravel >Penjelasan terperinci tentang cara Laravel menggunakan berbilang pangkalan data (dengan contoh kod)
Lajur tutorial Laravel berikut akan memperkenalkan kepada anda cara menggunakan berbilang pangkalan data dalam Laravel, saya harap ia akan membantu anda!
Gunakan .env
>= 5.0 (diuji berdasarkan 5.5 Laravel 8 juga tersedia)
dalam fail .env
DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=database1DB_USERNAME=rootDB_PASSWORD=secretDB_CONNECTION_SECOND=mysqlDB_HOST_SECOND=127.0.0.1DB_PORT_SECOND=3306DB_DATABASE_SECOND=database2DB_USERNAME_SECOND=rootDB_PASSWORD_SECOND=secret
dalam config/database.php
fail
'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'),],
Nota: dalam
mysql2
, jikadb_username
adalah sama dengandb_password
, kemudian anda boleh menggunakanenv('DB_USERNAME')
.
Mod
Untuk menentukan sambungan yang hendak digunakan, hanya gunakan kaedah connection()
Schema::connection('mysql2')->create('some_table', function($table){ $table->increments('id'):});
Pengeluar pertanyaan
$users = DB::connection('mysql2')->select(...);
model
menetapkan $connection
pembolehubah dalam model.
class SomeModel extends Eloquent { protected $connection = 'mysql2';}
Anda juga boleh menentukan sambungan pada masa jalan melalui kaedah setConnection
atau kaedah statik on
:
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; }}
Nota apabila mencuba Berhati-hati apabila mewujudkan hubungan dengan jadual yang merangkumi pangkalan data! Ini boleh digunakan, tetapi ia mungkin disertakan dengan beberapa kaveat dan bergantung pada pangkalan data dan persediaan pangkalan data yang anda miliki.
Menggunakan berbilang sambungan pangkalan data
Apabila menggunakan berbilang sambungan , anda boleh akses setiap sambungan melalui kaedah sambungan pada kelas fasad DB
. Nama yang diserahkan kepada kaedah connection
hendaklah sepadan dengan sambungan yang disenaraikan dalam config/database.php
fail konfigurasi:
$users = DB::connection('foo')->select(...);
Anda juga boleh menggunakan sambungan contoh Kaedah getPdo
untuk mengakses contoh PDO asas yang asal:
$pdo = DB::connection()->getPdo();
Alamat asal: https://stackoverflow.com/questions/31847054/how-to-use-multiple-databases - in-laravel
Alamat terjemahan: https://learnku.com/laravel/t/62110
Atas ialah kandungan terperinci Penjelasan terperinci tentang cara Laravel menggunakan berbilang pangkalan data (dengan contoh kod). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!