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?

Était-ce utile?

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!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top