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
}