2010-12-09 16 views
1

Mes excuses pour le titre de cette question n'étant pas très descriptif mais la vérité est que je ne suis pas sûr de savoir quelle est la terminologie correcte pour cette question. Je suis nouveau à l'utilisation de Zend Framework. Imaginez cet url: www.foo.com/bar Le code ci-dessous prend «barre» et le transmet à l'action de chargement du contrôleur d'index. Cependant, j'ai un autre contrôleur appelé "mypresentation" qui est ignoré maintenant le routeur ci-dessous a été ajouté à la Bootstrap. Comment faire pour que le routeur ignore les contrôleurs codés en dur? Comment faire pour que le routeur ignore les contrôleurs codés en dur?Zend Framework Zend_Controller_Router_Route (attraper tous les contrôleurs avant le paramètre de routage)

Toute aide est très appréciée et je changerai le titre si je peux quand j'ai plus d'informations.

Alex.

CORRIGER:

$prospectRoute = new Zend_Controller_Router_Route(
    '/:prospect', 
    array('controller'=>'index', 'action' => 'load') 
); 

$route2 = new Zend_Controller_Router_Route(
    'mypresentation',       
    array('controller' => 'mypresentation') 
); 

$router->addRoute('index', $prospectRoute); 
$router->addRoute('mypresentation', $route2);  
+0

Donc, vous voulez les routes par défaut + celui-ci itinéraire personnalisé (comme un fourre-tout de base)? Le problème est que votre route définie intercepte tout ''/ whatever'' en premier ... Peut-être qu'il peut être chaîné pour correspondre après que les routes par défaut aient été vérifiées. –

+0

J'ai essayé de faire en sorte que la chaîne corresponde aux valeurs par défaut, mais sans succès. Vous comprenez bien la question :) – beingalex

Répondre

1

Ajouter une autre voie avant de celui-ci, pour intercepter toutes les liaisons vers le contrôleur de mypresentation premier. Il parcourt les routes pour trouver le premier correspondant.

$route2 = new Zend_Controller_Router_Route(
    'mypresentation',      // what's typed in URL 
    array('controller' => 'mypresentation') // send here 
); 

$router->addRoute('mypresentation', $route2); 
$router->addRoute('load', $route);   // Your original route 

Si vous voulez attraper tous les contrôleurs, utilisez

$route3 = new Zend_Controller_Router_Route(
    ':controller',      
    array('controller' => ':controller') 
); 
+0

Je pense que je voudrais attraper tous les contrôleurs de sorte que votre troisième exemple est ce que je suis après avoir mis ce code et $ router-> addRoute ('index', $ route3) avant le code I initialement publié n'a pas changé le résultat. – beingalex

+0

Merci :) Cela a aidé à la fin. – beingalex