Verwendung mehrerer Datenbanken in Laravel
Die Verwaltung mehrerer Datenbanken innerhalb eines Systems ist in vielen Anwendungen eine häufige Anforderung. Laravel bewältigt dieses Szenario effektiv über seine Datenbankfassade.
Nutzung der Datenbankfassade
Die DB-Fassade bietet eine Verbindungsmethode, die Ihnen den Zugriff auf verschiedene in der Konfiguration definierte Verbindungen ermöglicht /database.php-Konfigurationsdatei. Um auf eine bestimmte Verbindung zuzugreifen, verwenden Sie die folgende Syntax:
$users = DB::connection('foo')->select(...);
Verbindungen definieren
In Laravel-Versionen 5.0 und höher werden Verbindungen in der .env-Datei oder definiert config/database.php.
.env (Laravel 5.0 und später)
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'), ],
Schema und Migration
Aufruf die Methode „connection()“, um die Verbindung für Schema oder Migration anzugeben Operationen:
Schema::connection('pgsql')->create('some_table', function($table) { $table->increments('id'); });
Query Builder
Verwenden Sie ähnlich wie bei Schemaoperationen die Methode „connection()“ für Abfragen:
$users = DB::connection('pgsql')->select(...);
Modelle
Definieren Sie die Verbindung für ein Modell in seinem Klasse:
Laravel 5.0 und höher:
class ModelName extends Model { protected $connection = 'pgsql'; }
Laravel 4.0 und früher:
class SomeModel extends Eloquent { protected $connection = 'pgsql'; }
Transaktionen
Transaktionen können über mehrere Verbindungen durchgeführt werden unter Verwendung der folgenden Syntax:
DB::transaction(function () { DB::connection('mysql')->table('users')->update(['name' => 'John']); DB::connection('pgsql')->table('orders')->update(['status' => 'shipped']); });
Fazit
Laravel bietet robuste Unterstützung für die Arbeit mit mehreren Datenbanken über die DB-Fassade und andere Methoden. Dadurch können Entwickler Anwendungen bedienen, die eine nahtlose Datenverwaltung über heterogene Datenbanksysteme hinweg erfordern.
Das obige ist der detaillierte Inhalt vonWie verwaltet man mehrere Datenbanken in Laravel effektiv?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!