Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kết nối với nhiều cơ sở dữ liệu trong CakePHP 3

Bạn thực hiện theo các bước dưới đây để sử dụng nhiều nguồn dữ liệu trong cùng một ứng dụng cakephp.

Đề cập đến nhiều nguồn cơ sở dữ liệu trong Config / app.php

Bạn phải quản lý nhiều cấu hình nguồn dữ liệu, trong nguồn dữ liệu mặc định giữ cơ sở dữ liệu chính và tạo thêm một nguồn dữ liệu nữa, chúng ta có thể nói đó là lịch sử cho nguồn dữ liệu thứ hai. Như đã đề cập bên dưới

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

Chỉ định nguồn dữ liệu trong Lớp bảng

Trong Src/Model/Table/<AnyOtherSource>Table.php , Thêm phương pháp bên dưới, nơi bạn muốn sử dụng nguồn dữ liệu lịch sử. Không cần thêm phương thức bên dưới khi bạn cần sử dụng nguồn dữ liệu mặc định, đối với nguồn dữ liệu mặc định, CakePHP sẽ đảm nhiệm việc đó.

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

Tham gia và liên kết mô hình trong CakePHP 3

Thêm mã bên dưới vào 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. Không thể cài đặt đá quý mysql trên Mac OS X

  2. MySQL - Giữa các tháng (thay vì dấu thời gian)

  3. Làm thế nào để kiểm tra số cổng mặc định cho kết nối mysql? Kết nối không hoạt động! kết nối jdbc

  4. Sự cố MySQL trên SQL

  5. Làm cách nào để tăng từng cột một trong trình kích hoạt?