sql >> Database teknologi >  >> RDS >> Mysql

Opret forbindelse til flere databaser i CakePHP 3

Du skal følge nedenstående trin for at bruge flere datakilder i samme cakephp-applikation.

Nævn flere databasekilder i Config/app.php

Du skal administrere flere datakildekonfigurationer, i standarddatakilden skal du beholde hoveddatabasen og lave en datakilde mere, vi kan sige det historie for anden datakilde. Som nævnt nedenfor

'Datasources' => [
    'default' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => '<host name>',
        'username' => '<database user>',
        'password' => '<database password>',
        'database' => '<database name>',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'flags' => [],
        'cacheMetadata' => true,
        'log' => false,
        'quoteIdentifiers' => false,
        'url' => env('DATABASE_URL', null),
    ],
    'history' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => '<host name>',
        'username' => '<database user>',
        'password' => '<database password>',
        'database' => '<database name>',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'flags' => [],
        'cacheMetadata' => true,
        'log' => false,
        'quoteIdentifiers' => false,
        'url' => env('DATABASE_URL', null),
    ]
]

Angiv datakilde i tabelklasser

I Src/Model/Table/<AnyOtherSource>Table.php , Tilføj nedenfor metode, hvor du vil bruge historiedatakilde. Ingen grund til at tilføje nedenstående metode, hvor du skal bruge standarddatakilde, for standarddatakilde vil CakePHP tage sig af det.

public static function defaultConnectionName() {
    return 'history';
}

Deltagelse og modelforening i CakePHP 3

Tilføj koden nedenfor i Src/Model/Table/<All>Table.php

class LogsTable extends Table {

    public function initialize(array $config) {
        parent::initialize($config);

        $this->table($this->connection()->config()['database'] . "." . $this->table()); // this is very important for joining and associations.

        // your other code for initilize method
    }

    public static function defaultConnectionName() {
        return 'history';
    }

    // other methods and your code should be here

}



  1. Eksporter gemt procedureresultatsæt til Excel i SSMS

  2. Vælg punkter fra kortdatabasen efter radius

  3. ORA-08177:kan ikke serialisere adgang til denne transaktion

  4. Saml en enkelt kolonne i forespørgslen med mange kolonner