Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Quelque chose me chiffone ! Je vois en récupérant le squelette d'application Zend que dans le module Application et plus précisément dans le fichier module.config. php nous avons ceci :
[lang=php] // The following is a route to simplify getting started creating // new controllers and actions without needing to create a new // module. Simply drop new controllers in, and you can access them // using the path /application/:controller/:action 'application' => array( 'type' => 'Literal', 'options' => array( 'route' => '/application', 'defaults' => array( '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Index', 'action' => 'index', ), ), 'may_terminate' => true, 'child_routes' => array( 'default' => array( 'type' => 'Segment', 'options' => array( 'route' => '/[:controller[/:action]]', 'constraints' => array( 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => array( ), ), ), ),
.....
[lang=php] 'controllers' => array( 'invokables' => array( 'Application\Controller\Index' => 'Application\Controller\IndexController', 'Application\Controller\Test' => 'Application\Controller\TestController', ), ),
Donc à la vue de ceci je me dis que j'ai juste à créer un controller (TestController avec une action index) et une vue dans le module Application et je ne dois plus me préoccuper des routes. Je renseigne également mon controller dans les invokables. Or je ne sais pas accéder à l'url : http://localhost/application/Test/index.
Aurais-je oublier quelque chose ?
Hors ligne
Bonjour,
"Or je ne sais pas accéder à l'url" n'est pas une description très précise du problème...
Si tu as une 404, vérifie que tu as bien activé le mod rewrite si tu es sur Apache. Si tu es sur le serveur de dev intégré à php5.4+ n'oublie pas de spécifier l'index.php comme point d'entrée.
Hors ligne
Hello
alors en fait tu ne doit pas laisser l'option 'defaults' de ta route vide, malheureusement tu doi préciser dans quel controleur tu veux aller chercher tes fonctions ^^
considère '/[:controller[/:action]]', comme le nommage de tes paramètre $_GET ^^
Edit :
Il faudra donc quelque chose du type :
[lang=php] 'defaults' => array( '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Test', 'action' => 'index', ),
Edit 2 :
autant pour moi alors ^^
j'ai pas l'habitude de laisser des urls aussi ouvertes xD
Dernière modification par flobrflo (23-03-2015 11:53:10)
Hors ligne
Salut, sur une route de type Segment le "defaults" peut être vide on s'en fou. Les paramètres get par défaut pour l'url sont reconnus quand il y a controller et action donc l'url devrait être http://localhost/application/test/index pour faire : http://localhost/module/controller/action
Hors ligne