यह सज्जनए> (Olivier
) एक ही समस्या थी! (एक साल पहले) उन्होंने लिखा
Controller
. के लिए एक छोटा सा अनुकूलन एस! यह बहुत छोटा है और पता चला है, यह 1.3 . में काम करता है और 2.x ।
वैसे भी, यह मेरा अंतिम समाधान है, जिसे मैंने 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;
}
}
और यहां बताया गया है कि मैंने इसे अपने app/Controller/CarsController.php
. में कैसे इस्तेमाल किया :
class CarsController extends AppController
{
public function index()
{
$this->Car->setDatabase('cake_sandbox_client3');
$cars = $this->Car->find('all');
$this->set('cars', $cars);
}
}
मैं शर्त लगा रहा हूं, मैं इस समस्या के साथ पहला या आखिरी नहीं हूं। इसलिए मुझे उम्मीद है कि यह जानकारी लोगों और केकपीएचपी समुदाय को मिलेगी।