Cześć,

od razu uprzedzam ze zaczynam poznawac symfony wiec prosze o wyrozumialosc smile.gif

robie cwiczenia z ksiazki "php5 programowanie z wykorzystaniem symfony ..."

i trafilem na problem. Nie wiem gdzie szukac bledu. Mam taka akcje:

  1. public function executeZapiszZdarzenie() {
  2.  
  3. if ($this->hasRequestParameter('nazwa') && $this->hasRequestParameter('miejsce') && $this->hasRequestParameter('data')) {
  4. $oZdarzenie = new Zdarzenia();
  5.  
  6. $oZdarzenie->setZdaNazwa($this->getRequestParameter('nazwa'));
  7. $oZdarzenie->setZdaMiejsce($this->getRequestParameter('miejsce'));
  8. $aData = $this->getRequestParameter('data');
  9. $oZdarzenie->setZdaData($aData['year'] . '-' . $aData['month'] . '-' . $aData['day']);
  10. $oZdarzenie->save();
  11. $this->redirect('aktualnosci/dodajZdarzenie');
  12. }
  13. else
  14. $this->redirect('aktualnosci/dodajZdarzenie');
  15. }

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 ...

błąd wystepuje przy zapisie do bazy danych:
  1. $oZdarzenie->save();

Plik databases.yml wyglada nastepujaco
Kod
all:
  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

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