Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous !!
J'ai une erreur de route récalcitrante !
Dans mon bootstrap :
$router = new Zend_Controller_Router_Rewrite(); $router ->addRoute( 'recherche', new Zend_Controller_Router_Route( 'recherche2/:lieu/:type/:loi/:sit/:livr', array( 'controller' => 'recherche2', 'action' => 'index', 'lieu' => null, 'type' => null, 'loi' => null, 'sit' => null, 'livr' => null, ) ) ); $frontController->setRouter($router);
Et si (dans mon navigateur) j'appelle http://www.monsite.dev/recherche2/ (donc sans aucun param), j'ai l'erreur :
Fatal error: Uncaught exception 'Zend_Controller_Router_Exception' with message 'type is not specified' in D:\wwwroot\php_class\Zend\Controller\Router\Route.php:235
Stack trace:
#0 D:\wwwroot\php_class\Zend\View\Helper\Url.php(72): Zend_Controller_Router_Route->assemble(Array, false)
#1 [internal function]: Zend_View_Helper_Url->url(Array, 'recherche')
#2 D:\wwwroot\php_class\Zend\View\Abstract.php(300): call_user_func_array(Array, Array)
#3 [internal function]: Zend_View_Abstract->__call('url', Array)
#4 D:\wwwroot\immoneuf\application\views\scripts\recherche2\index.phtml(32): Zend_View->url(Array, 'recherche')
#5 D:\wwwroot\php_class\Zend\View.php(46): include('D:\wwwroot\immo...')
#6 D:\wwwroot\php_class\Zend\View\Abstract.php(769): Zend_View->_run('.\application\v...')
#7 D:\wwwroot\php_class\Zend\Controller\Action\Helper\ViewRenderer.php(895): Zend_View_Abstract->render('recherche2/inde...')
#8 D:\wwwroot\php_class\Zend\Controller\Action\Helper\ViewRenderer.php(916): Zend_Controller_Action_Helper_ViewRenderer->render in D:\wwwroot\php_class\Zend\Controller\Router\Route.php on line 235
C'est là que je ne comprends pas trop ; j'ai mis des valeurs par défaut à "null" pour tous les paramètres . Je m'attendais à ce qu'aucune Exception ne soit retournée !
J'ai bidouillé un peu mais pas moyen de dénicher ce qui cloche... J'ai besoin d'aide !!
Merci d'avance
Dernière modification par Bast (22-05-2008 17:29:22)
Hors ligne
Si j'en crois ton exception, le problème vient du moment où tu appelles ton viewHelper url.
Il faut mettre le 3e paramètre ($reset) à true si tu veux que les paramètres par défaut soient utilisés.
Tu peux nous envoyer ton code qui appelle le viewHelper url ?
A+, Philippe
Hors ligne
Hum... rectification, je pense que je viens de raconter n'importe quoi au dessus. Je vais prendre un peu de temps pour relire le code un peu moins en diagonale
Cela dit, envoie toujours ton appel au helper, ça sera tjrs utile !
Philippe
Hors ligne
Je ne fais pas d'appel au helper, j'essaye de me rendre à l'url suivante en la apant dans mon navigateur :
http://www.monsite.dev/recherche2
J'ai essayé dans une page autre (une vue), de générer une url pointant vers la route 'recherche' sans paramètre
<a href="<?=$this->url(array(), 'recherche');?>">Allez...</a>
Si j'essaye d'afficher la page contenant ce code, j'obtiens une exception du même genre :
Fatal error: Uncaught exception 'Zend_Controller_Router_Exception' with message 'lieu is not specified' in D:\wwwroot\php_class\Zend\Controller\Router\Route.php:235
Stack trace:
#0 D:\wwwroot\php_class\Zend\View\Helper\Url.php(72): Zend_Controller_Router_Route->assemble(Array, false)
#1 [internal function]: Zend_View_Helper_Url->url(Array, 'recherche')
#2 D:\wwwroot\php_class\Zend\View\Abstract.php(300): call_user_func_array(Array, Array)
#3 [internal function]: Zend_View_Abstract->__call('url', Array)
#4 D:\wwwroot\immoneuf\application\views\scripts\index\index.phtml(12): Zend_View->url(Array, 'recherche')
#5 D:\wwwroot\php_class\Zend\View.php(46): include('D:\wwwroot\immo...')
#6 D:\wwwroot\php_class\Zend\View\Abstract.php(769): Zend_View->_run('.\application\v...')
#7 D:\wwwroot\php_class\Zend\Controller\Action\Helper\ViewRenderer.php(895): Zend_View_Abstract->render('index/index.pht...')
#8 D:\wwwroot\php_class\Zend\Controller\Action\Helper\ViewRenderer.php(916): Zend_Controller_Action_Helper_ViewRenderer->renderScrip in D:\wwwroot\php_class\Zend\Controller\Router\Route.php on line 235
Dernière modification par Bast (23-05-2008 09:19:06)
Hors ligne
bizarre : quand on regarde l'exception (de ton 1er message) il a quand même l'air d'appeler le helper url
#4 D:\wwwroot\immoneuf\application\views\scripts\recherche2\index.phtml(32): Zend_View->url(Array, 'recherche')
Tu peux regarder ce qu'il y a ligne 32 de ton index.phtml ?
sinon quelle version du ZF tu utilises ? parce qu'en regardant de plus près le code de la 1.5.2, je ne vois pas bien comment tu peux avoir ce type d'erreur...
Philippe
Hors ligne
ZF 1.5.1
La ligne 32, c'est le code : <a href="<?=$this->url(array(), 'recherche');?>">Allez...</a>
Il se peut que j'aie oublié une étape importante lors de la mise en place des routes, car je ne maitrise pas du tout. Quels sont les points fondamentaux à respecter ?
Je verrai bien si ça cloche sur l'un de ces points...
Hors ligne
J'aurais peut-être dû vous expliquer le but de tout ça.
Je voudrais avoir des url donc les paramètres sont toujours dans le même ordre. Comme vous pouvez le voir, il y en a pas mal. Et actuellement, selon l'ordre ou les liens de recherche sont cliqués, un même paramètre peut se retrouver en 5 positions différentes. C'est à dire que pour une même page (résultat de recherche), il peut exister 5 url différentes, et c'est mauvais pour le référencement.
Je pensais que le système de routes pourrait m'aider simplement...
Sinon j'ai une classe dédiée à la recherche desdits parametres, je peux également me faire une ptite fonction qui pond un url à partir des param qu'on lui passe... Mais quel dommage de réinventer la roue sous prétexte qu'on ne sait pas s'en servir
Hors ligne