Empfehlungen: Erweiterte Suche

Dynamische Datenbank

Fragen zur Konzeptionierung und womit man am besten anfäng? Hier rein...

Dynamische Datenbank

Beitragvon tomtom » Di 14. Jul 2009, 10:44

Hi,

In meinem Projekt werden verschiedene Datenbanken mit dem gleichen Aufbau verwendet. Bevor man die Anwendung also verwenden kann, wird man auf eine Seite umgeleitet auf der die Datenbank ausgewählt werden muss.
Hierzu habe ich in AppController::beforeFilter eine Abfrage eingebaut: Hat der Benutzer keine Datenbank ausgewählt => "Loginseite", wurde eine Datenbank ausgewählt => Datenbank-Konfiguration erstellen und Verbindung herstellen.

Code: Alles auswählen
function beforeFilter() {
        echo "AppController::beforeFilter";
       
        //Check if user has selected a Database
        if ($this->Session->read("database_selected")) {
            //Establish database connection
        $config = array(
                'driver' => 'postgres',
                'persistent' => false,
                'host' => 'localhost',
                'port' => 5432,
                'login' => $this->Session->read("dbUser"),
                'password' => $this->Session->read("dbPass"),
                'database' => $this->Session->read("dbDatabase"),
                'prefix' => '',
            ); 
           
            $db =& ConnectionManager::create("cdt", $config);
            var_export(pg_fetch_all($db->execute("select * from folders;")));   //Test
        } else {
            //Save current page
            $this->Session->write("login_target", Router::url("", true));
           
            //Redirect to login page
            $this->redirect(array('controller' => "users", 'action' => "login"));
        }
    }


Soweit so gut. Die Zeile mit dem Kommentar "Test" funktioniert.

Nun sage ich den Models welche Datenbank-Konfiguration sie verwenden sollen mit
Code: Alles auswählen
var $useDbConfig = "cdt"


Rufe ich nun einen Controller, der ein solches Model verwendet, auf, dann kommt folgendes:
Fatal Error (256): ConnectionManager::getDataSource - Non-existent data source cdt [CORE\cake\libs\model\connection_manager.php, line 109]

Daraus schließe ich, dass ich die Datenbank-Konfiguration früher erzeugen muss..nur wo?
Controller::loadModel überladen?

Hoffe ihr könnt mir weiterhelfen!
Danke!
tomtom
 
Beiträge: 1
Registriert: Di 14. Jul 2009, 10:22
CakePHP-Version: 1.2.x
OS: Win XP

Zurück zu Konzeption und Vorgehensweise

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron