Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Débutant sous ZF 1.11
J'ai effectué quelques tuto avec succès mais là je coince depuis quelques jours.
j'aimerais implémenter des liens dynamiquement dans mon menu principal
Lorsque je tente d’accéder a un model db j'ai une erreure
protected function _initNavigation() { $this->bootstrap('layout'); $layout = $this->getResource('layout'); $view = $layout->getView(); $config = new Zend_Config_Xml(APPLICATION_PATH.'/configs/navigation.xml','nav'); $navigation = new Zend_Navigation($config); $view->navigation($navigation); $pages = new Application_Model_DbTable_Pages(); $pages = $pages->fetchAll(); $listepage=""; foreach($pages as $page) : $listepage[]=array( 'type' => 'uri', 'label' => $page->menu, 'controller' => 'pages', 'action' => 'view', 'id' => $page->id, ); endforeach; $view->navigation()->menu()->addPage($listepage); }
l'erreure :
Fatal error: Uncaught exception 'Zend_Db_Table_Exception' with message 'No adapter found for Application_Model_DbTable_Pages' in
j'ai tenter une multitude de choses trouvées via google mais sans succès
je ne parviens pas a accéder à ma class Application_Model_DbTable_Pages depuis le bootstrap
dès que je commente la portion accédant à Application_Model_DbTable_Pages avec la boucle tout est ok au niveau du menu je récupère bien la structure statique de l'xml
par avance merci pour votre aide.
Dernière modification par xiii (24-08-2014 13:32:58)
Hors ligne
Bonjour,
Es-tu obligé pour une raison spécifique de te mettre à ZF1 ? Si non, changes tout de suite pour ZF2, car ZF1 c'est fini depuis un moment maintenant.
Pour ton problème, lors du bootstrap la connexion n'est pas encore initialisée. Il faut donc que tu l'initialises toi-même dans ce cas précis, en ajoutant la méthode suivante avant celle où tu veux utiliser la BD.
[lang=php] /** * This method loads the default Db adapter using params from application.ini * Required only because we use Db in plugins, which come before bd instantiation. * @return Zend_Db_Adapter * * Throw an error when the database can not be contacted. */ protected function _initDb() { $pluginDb = $this->getPluginResource('db'); $db = $pluginDb->getDbAdapter(); $db->setFetchMode(Zend_Db::FETCH_OBJ); Zend_Db_Table::setDefaultAdapter($db); try { $db->getConnection(); } catch (Zend_Db_Adapter_Exception $e) { die("Unable to contact the database: " . $e->getMessage()); } return $db; }
Tu noteras le die() qu'il serait judicieux de changer par un throw new Exception (voir une sous classe spéciale d'exception qui permettrait d'afficher un message intéressant).
Hors ligne
Bonjour,
Milles excuses pour la réponse aussi tardive.
Merci beaucoup pour cette solution, elle fonctionne parfaitement j'avais trouvé quelque chose dans ce goût mais il manquait des lignes ....
Pourquoi ZF1 simplement par ce que je travail avec des livres et un serveur local. Malheureusement je n'ai pas toujours accès a internet de par ma situation géographique et surtout mon travail
Je me suis permis de suivre ton lien en signature bravos pour ton travail juste j'adore
encore merci pour ce coup de main et asap je passe sur ZF2
Dernière modification par xiii (24-08-2014 13:33:56)
Hors ligne
Merci pour le compliment sur mon boulot
Pour ZF2, il y a deux livres en français qui ont été critiqués positivement sur ce site :
http://www.editions-eni.fr/livres/zend- … jaxContent
Au coeur de Zend Framework, plus complèxe et explicant en détail les points plus structurels du Framework.
http://www.z-f.fr/page/debuter_zf2
Hors ligne