ich etwas ähnliches in einem Projekt von mir gemacht haben, hier ist meine Arbeitslösung:
zunächst eine leere Verbindung in Ihr config.yml
dynamic_con:
dbname: ~
user: ~
password: ~
host: ~
charset: UTF8
Jetzt definieren, habe ich geschrieben ein PostLoginController
, die immer nach einer erfolgreichen Anmeldung aufgerufen wird.
Dort bekomme ich meine Verbindungsdaten und rufe meine DynamicDatabaseService
damit an.
Meine DynamicDatabaseService
hat die folgende Funktion, die meine Verbindung mit den bereitgestellten Daten aufbauen wird.
public function getDynamicDatabase()
{
// $this->doctrine was given to the service in the constructor beforehand
$dynamicCon = $this->doctrine->getConnection('dynamic_con');
$refCon = new \ReflectionObject($dynamicCon);
$refParams = $refCon->getProperty('_params');
$refParams->setAccessible('public');
if($params == false){
$defaultCon = $this->doctrine->getConnection('default');
$params = $refParams->getValue($dynamicCon);
// You need to inject your Params to the function or implement some further logic to receive your connection parameters to use them here.
$params['dbname'] = $dbName;
$params['user'] = $dbUser;
$params['password'] = $dbPass;
$params['host'] = $dbHost;
}
$refParams->setValue($dynamicCon,$params);
$refParams->setAccessible('private');
return $dynamicCon;
}
Jetzt können Sie mit dem $dynamicCon
als normaler PDO-Verbindung arbeiten, so
$dynamicCon->prepare("SELECT * FROM USERS WHERE id = :id");
$dynamicCon->bindValue(":id", $id);
$dynmicCon->execute();
Und so weiter
Vielen Dank für Ihre Antwort! – Geo