Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je suis en train de suivre le tutoriel officiel de Zend 2.3 : http://framework.zend.com/manual/2.3/en/user-guide/routing-and-controllers.html
Et je rencontre un problème avec le router quand je me rends sur ma page http://localhost/album, j'ai une erreur 404 not found : "The requested URL could not be matched by routing"
Voici le code du router, initialisé dans le fichier "module/Album/config/module.config.php":
[lang=php]<?php return array( 'controllers' => array( 'invokables' => array( 'Album\Controller\Album' => 'Album\Controller\AlbumController', ), ), // The following section is new and should be added to your file 'router' => array( 'routes' => array( 'album' => array( 'type' => 'segment', 'options' => array( 'route' => '/album[/][:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'id' => '[0-9]+', ), 'defaults' => array( 'controller' => 'Album\Controller\Album', 'action' => 'index', ), ), ), ), ), 'view_manager' => array( 'template_path_stack' => array( 'album' => __DIR__ . '/../view', ), ), ); ?>
J'ai bien déclaré le nouveau module dans la config : "config/application.config.php"
[lang=php]<?php return array( 'modules' => array( 'ZendDeveloperTools', 'DoctrineModule', 'DoctrineORMModule', 'Application', 'Album', ), 'module_listener_options' => array( 'module_paths' => array( './module', './vendor', ), 'config_glob_paths' => array( 'config/autoload/{,*.}{global,local}.php', ), ), );
Avez-vous une idée ?
Merci :-)
Hors ligne
Bonjour, tu n'a aucun problème pour la route application je suppose ?
Tu bosses avec wamp ? ou sur linux ? (car le vhost et le document root peuvent parfois poser ce genre de soucis)
D'autre part, tu as bien pensé a créer la vue ? et l'action indexAction dans ton controller album ?
Hors ligne
En effet, je n'ai pas de problème avec la route application, je vois bien l'accueil Zend Framework.
Je bosse avec MAMP (Wamp pour Mac OS)
Et oui j'ai bien créé la vue et le controller mais l'erreur indiquée par ZF dans le 404 "The requested URL could not be matched by routing" indique qu'il y a un problème dans le router j'imagine non ?
Hors ligne
Non pas forcément, si tu as suivi le tutoriel à la lettre et copié collé le code, le problem ne peux pas forcément venir de ton fichier de config mais d’ailleurs. Tu peux nous link ton Virtual Host ?
http://localhost/album
le fait est que quand tu es sous ce format là, tu héberge donc ton site en local à la racine de MAMP ?
il devrait ressembler à cela (prit sur http://framework.zend.com/manual/2.3/en … ation.html)
<VirtualHost *:80> ServerName zf2-tutorial.localhost DocumentRoot /path/to/zf2-tutorial/public SetEnv APPLICATION_ENV "development" <Directory /path/to/zf2-tutorial/public> DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
Hors ligne
Ha, à tout hasard, tu as activé le module rewrite d'apache ?
Hors ligne
J'ai indiqué à MAMP que le site se trouvait au chemin "/home/site/zf2-tutoriel/public/", je fais ça tout le temps, ça a toujours marché puis la page d'accueil de ZF2 à cette adresse http://localhost/ fonctionne bien. Je suis pas chez moi j'ai pa smon mac sous la main mais je t'enverrai mon virtual host ce soir.
Oui le module rewrite d'apache est activé.
L'erreur 404 que j’obtiens est promulgué par ZF et non par Apache. D'ailleurs même l'application ZendDeveloperTools fonctionne j'ai bien la petite barre de debug en bas (comme avec Symfony).
Dernière modification par Orfeo (02-04-2014 14:49:24)
Hors ligne
Plop, remplace ça /album[/][:action][/:id] par /album pour voir.
Ensuite tu peux retirer la contrainte sur action dans ton router elle sert à rien vu que tu l'écris en dur dans le router (c'est ce qu'il faut faire d'ailleurs ).
Hors ligne
Ok merci je vais essayer ça et je te tiens au courant , merci :-)
Hors ligne
J'ai essayé ce que tu m'as dit, ça ne change rien, voici le code du router tel que je l'ai modifié :
[lang=php] <?php return array( 'controllers' => array( 'invokables' => array( 'Album\Controller\Album' => 'Album\Controller\AlbumController', ), ), // The following section is new and should be added to your file 'router' => array( 'routes' => array( 'album' => array( 'type' => 'Zend\Mvc\Router\Http\Literal', 'options' => array( 'route' => '/album', 'defaults' => array( 'controller' => 'Album\Controller\Album', 'action' => 'index', ), ), ), ), ), 'view_manager' => array( 'template_path_stack' => array( 'album' => __DIR__ . '/../view', ), ), );
J'ai changé le type pensant que ça pouvait marcher ... mais rien y fait ! Vous avez une idée ?
Merci :-)
Hors ligne
D'après ce que j'ai compris et grace à ZendDeveloperTools (l'onglet config dans la debug bar), il n'est fait aucune mention du module Album, c'est comme si ce module n'existait pas, pourtant je l'appelle bien dans application.config.php
[lang=php]return array( 'modules' => array( 'ZendDeveloperTools', 'DoctrineModule', 'DoctrineORMModule', 'Application', 'Album', ), 'module_listener_options' => array( 'module_paths' => array( './module', './vendor', ), 'config_glob_paths' => array( 'config/autoload/{,*.}{global,local}.php', ), ), );
Dernière modification par Orfeo (02-04-2014 21:58:49)
Hors ligne
Fais un vhost comme indiqué dans la doc aussi . Et prends le même fichier .htaccess que dans le ZendSkeletonApplication sur github.
Hors ligne
Au final, j'ai téléchargé les sources du tutoriel sur Github (https://github.com/Hounddog/Album) et les ai installées et ça fonctionne, j'ai au moins la certitude que ma config est bonne.
Donc là j'essai de les décortiquer pour comprendre d'où venait le problème, je suis un peu blasé de ne pas avoir trouvé tout seul.
Merci de ton aide et très certainement à bientôt !
Hors ligne
le probleme se trouve dans la route elle meme :
'route' => '/album[/:action][/:id]'
dans l'exemple de tuto principale, ils ont mis :
'route' => '/album[/][:action][/:id]'
Hors ligne
Justement non si tu avais pris le temps de lire tout le sujet tu aurais vu que c'est ce qu'il a fait dès le début :
Orfeo a écrit:
'route' => '/album[/][:action][/:id]',
Hors ligne
Bonjour,
Je me suis mis au ZF2 cette semaine et j'ai donc commencé par le tutoriel 'officiel' (http://framework.zend.com/manual/2.0/en … rview.html).
J'ai exactement le même problème que Orféo c'est à dire que je suis aveuglément le tuto (même fichier de config, même structure, etc) mais j'ai une erreur 404 en tapant album dans la barre d'URL.
Ma question est simple : Quelqu'un saurait d'où vient le problème?
Merci de vos réponses.
Cordialement.
Hors ligne
Bonjour,
Il aurait ete preferable de faire un autre sujet avec un lien vers celui-ci.
Comme pour ce sujet, quel est ton environnement (WAMP...) et utilises-tu un alias, un virtualhost ou autre ?
Hors ligne
Ok c'est ce que je vais faire.
Hors ligne