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

Cách sử dụng động nhiều cơ sở dữ liệu cho một mô hình trong CakePHP

Quý ông này ( Olivier ) có cùng một vấn đề! (Một năm trước) Anh ấy đã viết một bản điều chỉnh nhỏ cho Controller S! Nó khá nhỏ và hóa ra, nó hoạt động trong 1.3 2.x .

Nhưng dù sao, đây là giải pháp cuối cùng của tôi, mà tôi đưa vào app/Model/AppModel.php :

class AppModel extends Model
{
  /**
   * Connects to specified database
   *
   * @param String name of different database to connect with.
   * @param String name of existing datasource
   * @return boolean true on success, false on failure
   * @access public
   */
    public function setDatabase($database, $datasource = 'default')
    {
      $nds = $datasource . '_' . $database;      
      $db  = &ConnectionManager::getDataSource($datasource);

      $db->setConfig(array(
        'name'       => $nds,
        'database'   => $database,
        'persistent' => false
      ));

      if ( $ds = ConnectionManager::create($nds, $db->config) ) {
        $this->useDbConfig  = $nds;
        $this->cacheQueries = false;
        return true;
      }

      return false;
    }
}

Và đây là cách tôi sử dụng nó trong app/Controller/CarsController.php của mình :

class CarsController extends AppController
{
  public function index()
  {
    $this->Car->setDatabase('cake_sandbox_client3');

    $cars = $this->Car->find('all');

    $this->set('cars', $cars);
  }

}

Tôi cá, tôi không phải là người đầu tiên hoặc cuối cùng với vấn đề này. Vì vậy, tôi thực sự hy vọng thông tin này sẽ tìm thấy mọi người và cộng đồng CakePHP.



  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ám phá MySQL Binlog Server - Ripple

  2. Chuyển đổi giản đồ MySQL sang Github Wiki?

  3. Làm cách nào để tôi có thể sử dụng mySQL Replace () để thay thế các chuỗi trong nhiều bản ghi?

  4. MAX () - Tìm Giá trị Tối đa trong một Cột trong MySQL

  5. Làm cách nào để trả về số nguyên và cột số từ MySQL dưới dạng số nguyên và số trong PHP?