Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je rencontre un problème lors de la définition de mes différents modules.
Dans mon fichier index.php je défini :
// Arborescence du site $front->setDefaultModule('home'); $front->addModuleDirectory($dir_config->module->directory);
Mon fichier de config dit :
module.directory = application/modules
Et mon arborescence est la suivante :
/application /config /modules /home /controllers /models /views /module1 /controllers /models /views /module2 /controllers /models /views /module3 /controllers /models /views
Maintenant, lorsque j'accède à :
localhost/MonApplication/
Tout fonctionne bien, en revanche si je tente d'aller dans l'un des modules avec
localhost/MonApplication/module1/
Ca ne fonctionne pas et j'obtiens l'erreur suivante :
Action "error" does not exist and was not trapped in __call()
Je ne comprend pas, on dirait que le routage vers mes modules ne fonctionne pas ... quelqu'un peut-il m'éclairer ?
Merci.
Dernière modification par Candy (02-05-2008 04:05:44)
Hors ligne
J'ai la même arborescence que toi mais je n'utilise pas cette fonction (addModuleDirectory). Par contre, pour que mes controllers soit reconnu, j'utilise
$frontController = Zend_Controller_Front::getInstance(); $frontController->setControllerDirectory(array( 'default' => './application/default/controllers/',......)
Du coup, j'aimerai bien savoir à quoi sert cette fonction ?
Hors ligne
La fonction "addModuleDirectory" te permet de passer à Zend le répertoire qui contient tes modules. Il va ensuite se charger lui même d'associer les modules au répertoire "controllers" correspondant (tu peux aussi lui spécifier un autre nom).
Cf. La doc officielle pour plus d'info
J'ai essayé de faire selon ta méthode, j'obtiens quelque chose du genre :
$front->setControllerDirectory(array( 'home' => './application/modules/home/controllers/', 'module1' => './application/modules/module1/controllers/', 'module2' => './application/modules/module2/controllers/', 'module3' => './application/modules/module3/controllers/' ));
C'est ok pour accéder à "home" mais lorsque je tente d'accéder à module1 par exemple j'obtiens :
Invalid controller specified (error)
J'ai pourtant un "IndexController" et un "index.phtml" dans chacun de mes modules ...
Dernière modification par Candy (01-05-2008 17:19:15)
Hors ligne
Bonjour Candy,
Dans ton module1, la classe de IndexController doit s'appeler Module1_IndexController (par contre le fichier reste IndexController.php).
A+, Philippe
Hors ligne
Merci beaucoup philippe, c'est vrai que quand on y pense ça a une certaine cohérence. Bref, je vais pouvoir avancer, merci .
Hors ligne