Configuration du routage dans CakePHP
-
27-09-2019 - |
Question
Je suis en train de mettre en œuvre le routage dans CakePHP. Je veux que les urls à cartographié comme ça ...
www.example.com/nodes/main -> www.example.com/main www.example.com/nodes/about -> www.example.com/about
Donc, pour cela je l'ai écrit dans ma 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
Y at-il une certaine façon où je peux obtenir les urls apparaître la façon dont ils sont acheminés? Mise en .htaccess ou httpd.conf serait facile -. Mais je n'ai pas accès à cette
Cordialement Vikram
La solution
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'));
}
Autres conseils
En gros, 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'));?>
Ensuite, le gâteau convertira les liens correctement www.example.com/main
Mais si vos liens sont
<?php echo $this->Html->link('your link', '/nodes/main/');?>
ils pointera vers www.example.com/nodes/main