Rumah >rangka kerja php >Laravel >Penjelasan terperinci tentang cara Laravel menggunakan berbilang pangkalan data (dengan contoh kod)

Penjelasan terperinci tentang cara Laravel menggunakan berbilang pangkalan data (dengan contoh kod)

藏色散人
藏色散人ke hadapan
2021-10-29 15:04:192585semak imbas

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, jika db_username adalah sama dengan db_password, kemudian anda boleh menggunakan env('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.


Dari Laravel Docs

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!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam