Rumah > pangkalan data > tutorial mysql > Bagaimana Menguruskan Pelbagai Pangkalan Data dengan Berkesan dalam Laravel?

Bagaimana Menguruskan Pelbagai Pangkalan Data dengan Berkesan dalam Laravel?

Patricia Arquette
Lepaskan: 2024-12-18 02:14:10
asal
131 orang telah melayarinya

How to Effectively Manage Multiple Databases in 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(...);
Salin selepas log masuk

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
Salin selepas log masuk

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'),
],
Salin selepas log masuk

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');
});
Salin selepas log masuk

Pembina Pertanyaan

Serupa dengan operasi skema, gunakan kaedah connection() untuk pertanyaan:

$users = DB::connection('pgsql')->select(...);
Salin selepas log masuk

Model

Tentukan sambungan untuk model dalam kelas:

Laravel 5.0 dan lebih baharu:

class ModelName extends Model {
    protected $connection = 'pgsql';
}
Salin selepas log masuk

Laravel 4.0 dan lebih awal:

class SomeModel extends Eloquent {
    protected $connection = 'pgsql';
}
Salin selepas log masuk

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']);
});
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan