Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Jusqu'à présent mon application tournait sur ma machine (Windows XP).
Mais lorsque je l'ai testé sur un autre serveur (Debian 4.0 Etch), (avec l'adresse http://192.168.1.253/projects/adsflow/html/) j'ai obtenu l'erreur suivante :
Zend_Controller_Dispatcher_Exception: Invalid controller specified (SiteSelector)
#0 /var/www/projects/my_library/Zend/View/Helper/Action.php(135): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 [internal function]: Zend_View_Helper_Action->action('index', 'SiteSelector', 'default')
#2 /var/www/projects/my_library/Zend/View/Abstract.php(300): call_user_func_array(Array, Array)
#3 [internal function]: Zend_View_Abstract->__call('action', Array)
#4 /var/www/projects/mon_site/application/default/layouts/main.phtml(58): Zend_View->action('index', 'SiteSelector', 'default')
#5 /var/www/projects/my_library/Zend/View.php(46): include('/var/www/projec...')
#6 /var/www/projects/my_library/Zend/View/Abstract.php(769): Zend_View->_run('../application/...')
#7 /var/www/projects/my_library/Zend/Layout.php(729): Zend_View_Abstract->render('main.phtml')
#8 /var/www/projects/my_library/Zend/Layout/Controller/Plugin/Layout.php(142): Zend_Layout->render()
#9 /var/www/projects/my_library/Zend/Controller/Plugin/Broker.php(337): Zend_Layout_Controller_Plugin_Layout->postDispatch(Object(Zend_Controller_Request_Http))
#10 /var/www/projects/my_library/Zend/Controller/Front.php(925): Zend_Controller_Plugin_Broker->postDispatch(Object(Zend_Controller_Request_Http))
#11 /var/www/projects/mon_site/html/index.php(78): Zend_Controller_Front->dispatch()
#12 {main}
Le dossier "/var/www/" est mon DocumentRoot d'Apache, le framework Zend est situé dans "/var/www/projects/my_library/Zend/" et mon site dans "/var/www/projects/mon_site/"
Le controlleur en question, SiteSelector, est appelé via un Zend_View_Helper_Action->action() dans mon fichier de layout "layout/main.phtml" :
<div id="top"> <?php echo $this->action('index', 'SiteSelector'); ?> </div>
Si je commente ce bout de code : le site fonctionne correctement.
Mes recherches sur Google n'ont abouti à rien du tout.
Si vous avez besoin de plus d'informations... n'hésitez pas à demander
Configuration locale :
- Apache 2.2.9
- PHP 5.2.6
- Zend Framework 1.5.3
Serveur Debian :
- Apache 2.2.3
- PHP 5.2.6-0.dotdeb.1 with Suhosin-Patch
- Zend Framework 1.5.3
---------------
Problème résolu :
Utiliser 'site-selector' pour appeler mon Contrôleur :
<?php echo $this->action('index', 'site-selector', 'default'); ?>
et renommer les dossiers de vue de la même façon ('site-selector').
Dernière modification par _Raynor_ (15-09-2008 17:21:41)
Hors ligne
Je pense que c'est le problème du message suivant :
http://www.z-f.fr/forum/viewtopic.php?id=1815
A+, Philippe
Hors ligne
Si tu fais référence au problème de casse du nom des fichiers et des classes : j'ai vérifié et ça semble être autre chose.
Ma classe est dans "SiteSelectorController.php" : "class SiteSelectorController extends Zend_Controller_Action { ... }"
Hors ligne
Il me semble qu'avec la version 1.5.x, le ZF gère un peu bizarrement les majuscules. Notamment il passe complètement le nom en minuscule et remet la 1ère lettre en majuscule je crois.
Bref, essaye de renommer ton controller en virant la majuscule du milieu.
"SiteselectorController.php" et "class SiteselectorController extends Zend_Controller_Action"
Je ne suis plus bien sur, mais il me semble qu'il y a un truc de ce type qui a changé en ZF 1.5...
A+, Philippe
Hors ligne
Hello,
Philippe : tu fais référence à ceci : http://framework.zend.com/manual/fr/zen … htoonefive.
Mais pour moi cela ne concerne que les actions.
A+
Hors ligne
note que la vue pour SiteSelectorController est site-selector...
Voici ce que j'ai (et qui fonctionne) dans mon layout pour appeler la vue index de mon controller HeaderText
<?= $this->action('header-text','index'); // from default module ?>
a+
Hors ligne
Notez que je n'ai ce problème :
- qu'avec ce contrôleur appelé via le Zend_View_Helper_Action (ce qui me fait penser que je devrais tester $this->action() avec un autre contrôleur)
- que sur le serveur Debian et non pas sur mon ordinateur Windows
Merci de vos conseils/propositions : je les testerais demain au boulot.
Hors ligne
Hello,
Je viens de parcourir le code.
Avec
<?php echo $this->action('index', 'SiteSelector'); ?>
Le fichier recherché est "SiteselectorController.php", la classe peut elle s'appeler "class SiteSelectorController extends Zend_Controller_Action" ou "class SiteselectorController extends Zend_Controller_Action".
Pour fonctionner ton appel doit être :
<?php echo $this->action('index', 'site-selector'); ?>
De même que pour un appel vers une page directe : "http://tonsite/site-selector/index"
Sous Windows, "http://tonsite/site-selector/index" ou "http://tonsite/siteselector/index" fonctionne.
Ceci n'a pas changé entre 1.5 et 1.6.
A+
Dernière modification par mikaelkael (11-09-2008 22:01:17)
Hors ligne
C'est effectivement un problème dans ce genre : maintenant que j'ai changé mon code en :
<?php echo $this->action('index', 'site-selector', 'default'); ?>
J'obtiens :
Zend_View_Exception: script 'site-selector/index.phtml' not found in path
Dois-je donc renommer mes dossiers de vues pour qu'ils prennent cette forme (SiteSelector => site-selector, NavigationBar => navigation-bar) ?
Hors ligne
Hello,
Dois-je donc renommer mes dossiers de vues pour qu'ils prennent cette forme (SiteSelector => site-selector, NavigationBar => navigation-bar) ?
=> oui
A+
Hors ligne
Merci, tout fonctionne correctement maintenant
Hors ligne
Pages: 1