od razu uprzedzam ze zaczynam poznawac symfony wiec prosze o wyrozumialosc

robie cwiczenia z ksiazki "php5 programowanie z wykorzystaniem symfony ..."
i trafilem na problem. Nie wiem gdzie szukac bledu. Mam taka akcje:
public function executeZapiszZdarzenie() { if ($this->hasRequestParameter('nazwa') && $this->hasRequestParameter('miejsce') && $this->hasRequestParameter('data')) { $oZdarzenie = new Zdarzenia(); $oZdarzenie->setZdaNazwa($this->getRequestParameter('nazwa')); $oZdarzenie->setZdaMiejsce($this->getRequestParameter('miejsce')); $aData = $this->getRequestParameter('data'); $oZdarzenie->setZdaData($aData['year'] . '-' . $aData['month'] . '-' . $aData['day']); $oZdarzenie->save(); $this->redirect('aktualnosci/dodajZdarzenie'); } else $this->redirect('aktualnosci/dodajZdarzenie'); }
ktorej wywolanie zwraca blad
Kod
[PropelException]
[wrapped: No driver has been registered to handle connection type: [User Info: Array]]
stack trace
at ()
in SF_ROOT_DIR\lib\symfony\vendor\propel\Propel.php line 489 ...
try {
$con = Creole::getConnection($dsn);
} catch (SQLException $e) {
throw new PropelException($e);
}
self::$connectionMap[$name] = $con;
}
at Propel::getConnection('propel')
in SF_ROOT_DIR\lib\model\om\BaseZdarzenia.php line 199 ...
at BaseZdarzenia->save()
in SF_ROOT_DIR\apps\model\modules\aktualnosci\actions\actions.class.php line 34 ...
at aktualnosciActions->executeZapiszZdarzenie()
in SF_ROOT_DIR\lib\symfony\action\sfActions.class.php line 62 ...
at sfActions->execute()
in SF_ROOT_DIR\lib\symfony\filter\sfExecutionFilter.class.php line 129 ...
at sfExecutionFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR\lib\symfony\filter\sfFilterChain.class.php line 43 ...
at sfFilterChain->execute()
in SF_ROOT_DIR\lib\symfony\filter\sfFlashFilter.class.php line 50 ...
at sfFlashFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR\lib\symfony\filter\sfFilterChain.class.php line 43 ...
at sfFilterChain->execute()
in SF_ROOT_DIR\lib\symfony\filter\sfCommonFilter.class.php line 29 ...
at sfCommonFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR\lib\symfony\filter\sfFilterChain.class.php line 43 ...
at sfFilterChain->execute()
in SF_ROOT_DIR\lib\symfony\filter\sfWebDebugFilter.class.php line 35 ...
at sfWebDebugFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR\lib\symfony\filter\sfFilterChain.class.php line 43 ...
at sfFilterChain->execute()
in SF_ROOT_DIR\lib\symfony\filter\sfRenderingFilter.class.php line 33 ...
at sfRenderingFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR\lib\symfony\filter\sfFilterChain.class.php line 43 ...
at sfFilterChain->execute()
in SF_ROOT_DIR\lib\symfony\controller\sfController.class.php line 283 ...
at sfController->forward('aktualnosci', 'zapiszZdarzenie')
in SF_ROOT_DIR\lib\symfony\controller\sfFrontWebController.class.php line 48 ...
at sfFrontWebController->dispatch()
in SF_ROOT_DIR\web\model_dev.php line 10 ...
[wrapped: No driver has been registered to handle connection type: [User Info: Array]]
stack trace
at ()
in SF_ROOT_DIR\lib\symfony\vendor\propel\Propel.php line 489 ...
try {
$con = Creole::getConnection($dsn);
} catch (SQLException $e) {
throw new PropelException($e);
}
self::$connectionMap[$name] = $con;
}
at Propel::getConnection('propel')
in SF_ROOT_DIR\lib\model\om\BaseZdarzenia.php line 199 ...
at BaseZdarzenia->save()
in SF_ROOT_DIR\apps\model\modules\aktualnosci\actions\actions.class.php line 34 ...
at aktualnosciActions->executeZapiszZdarzenie()
in SF_ROOT_DIR\lib\symfony\action\sfActions.class.php line 62 ...
at sfActions->execute()
in SF_ROOT_DIR\lib\symfony\filter\sfExecutionFilter.class.php line 129 ...
at sfExecutionFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR\lib\symfony\filter\sfFilterChain.class.php line 43 ...
at sfFilterChain->execute()
in SF_ROOT_DIR\lib\symfony\filter\sfFlashFilter.class.php line 50 ...
at sfFlashFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR\lib\symfony\filter\sfFilterChain.class.php line 43 ...
at sfFilterChain->execute()
in SF_ROOT_DIR\lib\symfony\filter\sfCommonFilter.class.php line 29 ...
at sfCommonFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR\lib\symfony\filter\sfFilterChain.class.php line 43 ...
at sfFilterChain->execute()
in SF_ROOT_DIR\lib\symfony\filter\sfWebDebugFilter.class.php line 35 ...
at sfWebDebugFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR\lib\symfony\filter\sfFilterChain.class.php line 43 ...
at sfFilterChain->execute()
in SF_ROOT_DIR\lib\symfony\filter\sfRenderingFilter.class.php line 33 ...
at sfRenderingFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR\lib\symfony\filter\sfFilterChain.class.php line 43 ...
at sfFilterChain->execute()
in SF_ROOT_DIR\lib\symfony\controller\sfController.class.php line 283 ...
at sfController->forward('aktualnosci', 'zapiszZdarzenie')
in SF_ROOT_DIR\lib\symfony\controller\sfFrontWebController.class.php line 48 ...
at sfFrontWebController->dispatch()
in SF_ROOT_DIR\web\model_dev.php line 10 ...
błąd wystepuje przy zapisie do bazy danych:
$oZdarzenie->save();
Plik databases.yml wyglada nastepujaco
Kod
all:
propel:
class: sfPropelDatabase
param:
dns: mysql://root:pass@localhost/aktualnosci
propel:
class: sfPropelDatabase
param:
dns: mysql://root:pass@localhost/aktualnosci
a propel.ini tak
Kod
propel.targetPackage = lib.model
propel.packageObjectModel = true
propel.project = finanse
propel.database = mysql
propel.database.createUrl = mysql://root:pass@localhost/
propel.database.url = mysql://root:pass@localhost/aktualnosci
propel.addGenericAccessors = true
propel.addGenericMutators = true
propel.addTimeStamp = false
propel.schema.validate = false
; directories
propel.home = .
propel.output.dir = C:\server\apache\htdocs\finanse
propel.schema.dir = ${propel.output.dir}/config
propel.conf.dir = ${propel.output.dir}/config
propel.phpconf.dir = ${propel.output.dir}/config
propel.sql.dir = ${propel.output.dir}/data/sql
propel.runtime.conf.file = runtime-conf.xml
propel.php.dir = ${propel.output.dir}
propel.default.schema.basename = schema
propel.datadump.mapper.from = *schema.xml
propel.datadump.mapper.to = *data.xml
; builder settings
propel.builder.peer.class = addon.propel.builder.SfPeerBuilder
propel.builder.object.class = addon.propel.builder.SfObjectBuilder
propel.builder.objectstub.class = addon.propel.builder.SfExtensionObjectBuilder
propel.builder.peerstub.class = addon.propel.builder.SfExtensionPeerBuilder
propel.builder.objectmultiextend.class = addon.propel.builder.SfMultiExtendObjectBuilder
propel.builder.mapbuilder.class = addon.propel.builder.SfMapBuilderBuilder
propel.builder.interface.class = propel.engine.builder.om.php5.PHP5InterfaceBuilder
propel.builder.node.class = propel.engine.builder.om.php5.PHP5NodeBuilder
propel.builder.nodepeer.class = propel.engine.builder.om.php5.PHP5NodePeerBuilder
propel.builder.nodestub.class = propel.engine.builder.om.php5.PHP5ExtensionNodeBuilder
propel.builder.nodepeerstub.class = propel.engine.builder.om.php5.PHP5ExtensionNodePeerBuilder
propel.builder.addIncludes = false
propel.builder.addComments = false
propel.builder.addBehaviors = false
propel.packageObjectModel = true
propel.project = finanse
propel.database = mysql
propel.database.createUrl = mysql://root:pass@localhost/
propel.database.url = mysql://root:pass@localhost/aktualnosci
propel.addGenericAccessors = true
propel.addGenericMutators = true
propel.addTimeStamp = false
propel.schema.validate = false
; directories
propel.home = .
propel.output.dir = C:\server\apache\htdocs\finanse
propel.schema.dir = ${propel.output.dir}/config
propel.conf.dir = ${propel.output.dir}/config
propel.phpconf.dir = ${propel.output.dir}/config
propel.sql.dir = ${propel.output.dir}/data/sql
propel.runtime.conf.file = runtime-conf.xml
propel.php.dir = ${propel.output.dir}
propel.default.schema.basename = schema
propel.datadump.mapper.from = *schema.xml
propel.datadump.mapper.to = *data.xml
; builder settings
propel.builder.peer.class = addon.propel.builder.SfPeerBuilder
propel.builder.object.class = addon.propel.builder.SfObjectBuilder
propel.builder.objectstub.class = addon.propel.builder.SfExtensionObjectBuilder
propel.builder.peerstub.class = addon.propel.builder.SfExtensionPeerBuilder
propel.builder.objectmultiextend.class = addon.propel.builder.SfMultiExtendObjectBuilder
propel.builder.mapbuilder.class = addon.propel.builder.SfMapBuilderBuilder
propel.builder.interface.class = propel.engine.builder.om.php5.PHP5InterfaceBuilder
propel.builder.node.class = propel.engine.builder.om.php5.PHP5NodeBuilder
propel.builder.nodepeer.class = propel.engine.builder.om.php5.PHP5NodePeerBuilder
propel.builder.nodestub.class = propel.engine.builder.om.php5.PHP5ExtensionNodeBuilder
propel.builder.nodepeerstub.class = propel.engine.builder.om.php5.PHP5ExtensionNodePeerBuilder
propel.builder.addIncludes = false
propel.builder.addComments = false
propel.builder.addBehaviors = false
wczesniej, kiedy generowalem schemat yml z bazy danych (i odwrotnie) wszystko na tych ustawieniach dzialalo poprawanie (wszystkie komunikaty nie zwracaly bledow).
Czy ktos ma pomysl, gdzie znajduje sie blad? Dzieki za odpowiedzi
rozwiazanie problemu znalzlem tutaj:
http://forum.symfony-project.org/viewtopic...f=8&t=12390
zastosowanie takiej skladni w pliku databases.yml pomoglo:
Kod
#all:
# propel:
# class: sfPropelDatabase
# param:
# dns: mysql://root:xxx@localhost/aktualnosci
all:
propel:
class: sfPropelDatabase
param:
phptype: mysqli
host: localhost
database: aktualnosci
username: root
password: xxx
# propel:
# class: sfPropelDatabase
# param:
# dns: mysql://root:xxx@localhost/aktualnosci
all:
propel:
class: sfPropelDatabase
param:
phptype: mysqli
host: localhost
database: aktualnosci
username: root
password: xxx