Routing-Konfiguration in CakePHP
-
27-09-2019 - |
Frage
Ich versuche, das Routing in CakePHP zu implementieren. Ich möchte die Urls abzubildenden wie diese ...
www.example.com/nodes/main -> www.example.com/main www.example.com/nodes/about -> www.example.com/about
Also, für dieses schrieb ich in meiner config / routes.php Datei ..
Router::connect('/:action', array('controller' => 'nodes'));
Nun habe ich die Sache geht, aber wenn ich auf die Links klicken, wird die URL in Browser wie www.example.com/nodes/main www.example.com/nodes/about
Gibt es eine Möglichkeit, wo ich die Urls den Weg zu erscheinen bekommen sie weitergeleitet werden? Einstellung in .htaccess oder httpd.conf wäre einfach -. Aber ich habe keinen Zugriff auf das
Viele Grüße Vikram
Lösung
Dies sollte funktionieren:
Router::connect('/main', array('controller' => 'nodes', 'action' => 'main'));
Router::connect('/about', array('controller' => 'nodes', 'action' => 'about'));
Sie können auch etwas stärker, wie dies tun:
$actions = array('main','about');
foreach ($actions as $action){
Router::connect('/$action', array('controller' => 'nodes', 'action' => '$action'));
}
Andere Tipps
Grundsätzlich, wenn Sie Ihre Links werden erstellt, mit Html-Helfer, mit folgendem Format:
<?php echo $this->Html->link('your link', array('controller'=>'nodes', 'action'=>'main'));?>
Dann wird der Kuchen auf die Links konvertieren richtig www.example.com/main
Aber wenn Sie Ihre Links sind
<?php echo $this->Html->link('your link', '/nodes/main/');?>
werden sie verweisen auf www.example.com/nodes/main