Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Terhubung dengan beberapa database di CakePHP 3

Anda telah mengikuti langkah-langkah di bawah ini untuk menggunakan beberapa sumber data dalam aplikasi cakephp yang sama.

Sebutkan beberapa sumber database di Config/app.php

Anda harus mengelola beberapa konfigurasi sumber data, dalam sumber data default menyimpan database utama, dan membuat satu sumber data lagi kita dapat mengatakannya sejarah untuk sumber data kedua. Seperti yang disebutkan di bawah ini

'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),
    ]
]

Tentukan sumber data di Kelas Tabel

Di Src/Model/Table/<AnyOtherSource>Table.php , Tambahkan metode di bawah ini, tempat Anda ingin menggunakan sumber data riwayat. Tidak perlu menambahkan metode di bawah ini di mana Anda perlu menggunakan sumber data default, karena sumber data default CakePHP akan menanganinya.

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

Bergabung dan Asosiasi Model di CakePHP 3

Tambahkan kode di bawah ini di 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengatasi jenis bidang integer yang tidak ditandatangani yang tidak didukung di MS SQL?

  2. bermigrasi ke mysql di Django

  3. Butuh saran dan umpan balik tentang pengkodean hubungan banyak:banyak di MySQL

  4. Deteksi emotikon dalam string

  5. Masalah ColumnNotFound dengan Magic dalam skala permainan