Rumah >pangkalan data >tutorial mysql >Bagaimana Menguruskan Pelbagai Pangkalan Data dengan Berkesan dalam Laravel?
Menggunakan Berbilang Pangkalan Data dalam Laravel
Menguruskan berbilang pangkalan data dalam sistem ialah keperluan biasa dalam banyak aplikasi. Laravel mengendalikan senario ini dengan berkesan melalui fasad pangkalan datanya.
Menggunakan Fasad Pangkalan Data
Fasad DB menyediakan kaedah sambungan yang membolehkan anda mengakses pelbagai sambungan yang ditakrifkan dalam konfigurasi /database.php fail konfigurasi. Untuk mengakses sambungan tertentu, gunakan sintaks berikut:
$users = DB::connection('foo')->select(...);
Menentukan Sambungan
Dalam Laravel versi 5.0 dan lebih baru, sambungan ditakrifkan dalam fail .env atau config/database.php.
.env (Laravel 5.0 dan kemudian)
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=mysql_database DB_USERNAME=root DB_PASSWORD=secret DB_CONNECTION_PGSQL=pgsql DB_HOST_PGSQL=127.0.0.1 DB_PORT_PGSQL=5432 DB_DATABASE_PGSQL=pgsql_database DB_USERNAME_PGSQL=root DB_PASSWORD_PGSQL=secret
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'), ], 'pgsql' => [ 'driver' => env('DB_CONNECTION_PGSQL'), 'host' => env('DB_HOST_PGSQL'), 'port' => env('DB_PORT_PGSQL'), 'database' => env('DB_DATABASE_PGSQL'), 'username' => env('DB_USERNAME_PGSQL'), 'password' => env('DB_PASSWORD_PGSQL'), ],
Skema dan Migrasi
Panggil kaedah connection() untuk menentukan sambungan untuk skema atau migrasi operasi:
Schema::connection('pgsql')->create('some_table', function($table) { $table->increments('id'); });
Pembina Pertanyaan
Serupa dengan operasi skema, gunakan kaedah connection() untuk pertanyaan:
$users = DB::connection('pgsql')->select(...);
Model
Tentukan sambungan untuk model dalam kelas:
Laravel 5.0 dan lebih baharu:
class ModelName extends Model { protected $connection = 'pgsql'; }
Laravel 4.0 dan lebih awal:
class SomeModel extends Eloquent { protected $connection = 'pgsql'; }
Transaksi
Transaksi boleh dilakukan di seluruh berbilang sambungan menggunakan sintaks berikut:
DB::transaction(function () { DB::connection('mysql')->table('users')->update(['name' => 'John']); DB::connection('pgsql')->table('orders')->update(['status' => 'shipped']); });
Kesimpulan
Laravel menyediakan sokongan teguh untuk bekerja dengan berbilang pangkalan data melalui fasad DB dan kaedah lain. Ini memberi kuasa kepada pembangun untuk memenuhi aplikasi yang memerlukan pengurusan data yang lancar merentas sistem pangkalan data heterogen.
Atas ialah kandungan terperinci Bagaimana Menguruskan Pelbagai Pangkalan Data dengan Berkesan dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!