Zend itinéraire Créé et maintenant tous les liens d'utiliser cette url
-
14-11-2019 - |
Question
J'ai créé un itinéraire pour afficher des profils des utilisateurs:
$router = Zend_Controller_Front::getInstance()->getRouter();
$route = new Zend_Controller_Router_Route(
'profile/:username',
array(
'username' => 'username',
'module' => 'core',
'controller' => 'profile',
'action' => 'view'
)
);
$router->addRoute('profile',$route);
Quand j'y vais, toutes les url dans la page tous disent maintenant http://127.0.0.1/project/public/profile.
Comment puis-je résoudre ce problème?
La solution
Si à l'aide de la Url
helper de vue ou Zend_Navigation
, vous devez spécifier la route à utiliser si vous n'avez pas à utiliser l'actuel.Par exemple...
Url helper de vue
L'utilisation de la route par "défaut"
<?php echo $this->url(array(
'action' => 'index',
'controller' => 'index'
), 'default', true) ?>
Navigation config
resources.navigation.pages.home.label = "Home"
resources.navigation.pages.home.action = "index"
resources.navigation.pages.home.controller = "index"
resources.navigation.pages.home.module = "default"
; Don't forget to set the route
resources.navigation.pages.home.route = "default"
Addendum
La façon la plus simple de configurer des routes est via le Routeur de ressources.Essayez ceci dans votre configuration, plutôt que le code que vous avez
resources.router.routes.profile.route = "profile/:username"
resources.router.routes.profile.defaults.module = "core"
resources.router.routes.profile.defaults.controller = "profile"
resources.router.routes.profile.defaults.action = "view"
Autres conseils
Merci Phil! J'ai eu le même problème et tu m'as sauvé;)
Juste pour information, pour les personnes qui utilisent la structure XML pour Zend Navigation, il suffit d'ajouter pour chaque itinéraire.
pour l'exemple:
<?xml version="1.0" encoding="UTF-8"?>
<configdata>
<nav>
<myfirstroute>
<label>...</label>
<module>...</module>
<controller>...</controller>
<action>...</action>
**<route>default</route>**
</myfirstroute>
<mysecondroute>
<label>...</label>
<module>...</module>
<controller>...</controller>
<action>...</action>
**<route>default</route>**
</mysecondroute>
...
</nav>
</configdata>
Voir vous!