2010-06-13 4 views
0

J'essaie d'implémenter le routage dans cakephp. Je souhaite que les URL soient mappées comme ceci ...Configuration de routage dans cakephp

www.example.com/nodes/main -> www.example.com/main www.example.com/nodes/about -> www.example.com/A propos

donc, pour cela je l'ai écrit dans mon dossier config/routes.php ..

Router::connect('/:action', array('controller' => 'nodes')); 

maintenant, je suis la chose va, mais quand je clique sur les liens, l'URL dans le navigateur apparaît comme www.example.com/nodes/main www.example.com/nodes/about

Existe-t-il un moyen de faire apparaître les URL de la façon dont elles sont routées? La configuration dans .htaccess ou httpd.conf serait facile - mais je n'y ai pas accès.

Cordialement Vikram

Répondre

2

Cela devrait fonctionner:

Router::connect('/main', array('controller' => 'nodes', 'action' => 'main')); 
Router::connect('/about', array('controller' => 'nodes', 'action' => 'about')); 

Vous pouvez aussi faire quelque chose de plus puissant, comme ceci:

$actions = array('main','about'); 
foreach ($actions as $action){ 
    Router::connect('/$action', array('controller' => 'nodes', 'action' => '$action')); 
} 
+0

Hi là Cela fonctionne déjà pour moi en utilisant le code que j'ai écrit. C'est juste la question de l'URL apparaissant dans la barre d'adresse que je cherche à adresser. – vikmalhotra

+0

euh, j'ai vu ça se passer. Je ne me souviens pas pourquoi, maintenant, mais je vais jeter un coup d'oeil. Avez-vous essayé avec l'écriture des contrôleurs? Trouvez dans votre code ceux qui manquent, alors, sont interprétés comme le fonctionnement réel du contrôleur. – santiagobasulto

+0

Très bien! C'était le problème. Je n'écrivais pas le contrôleur lors de l'utilisation de l'aide de lien, et comme j'avais des contrôleurs par défaut, "node", c'est pourquoi il affichait le contrôleur ainsi que l'action dans la barre d'adresse. Merci mec. – vikmalhotra

2

Fondamentalement, si vos liens sont créés avec aide Html, avec le format suivant:

<?php echo $this->Html->link('your link', array('controller'=>'nodes', 'action'=>'main'));?> 

Puis le gâteau convertira les liens correctement www.example.com/main~~V~~3rd

Mais si vos liens sont

<?php echo $this->Html->link('your link', '/nodes/main/');?> 

ils pointera vers www.example.com/nodes/main

Questions connexes