Configuração de roteamento no CakePhp
-
27-09-2019 - |
Pergunta
Estou tentando implementar o roteamento no CakePHP. Eu quero que os URLs mapearam assim ...
www.example.com/nodes/main -> www.example.com/main www.example.com/nodes/about -> www.example.com/about
Então, para isso, escrevi no meu arquivo de configuração/rotas.php ..
Router::connect('/:action', array('controller' => 'nodes'));
Agora, entendi, mas quando clico nos links, o URL no navegador aparece como www.example.com/nodes/main www.example.com/nodes/about
Existe alguma maneira de eu conseguir que os URLs apareçam da maneira que são roteados? A configuração de .htaccess ou httpd.conf seria fácil - mas não tenho acesso a isso.
Atenciosamente Vikram
Solução
Isso deve funcionar:
Router::connect('/main', array('controller' => 'nodes', 'action' => 'main'));
Router::connect('/about', array('controller' => 'nodes', 'action' => 'about'));
Você também pode fazer algo mais poderoso, assim:
$actions = array('main','about');
foreach ($actions as $action){
Router::connect('/$action', array('controller' => 'nodes', 'action' => '$action'));
}
Outras dicas
Basicamente, se seus links forem criados com HTML Helper, com o seguinte formato:
<?php echo $this->Html->link('your link', array('controller'=>'nodes', 'action'=>'main'));?>
Em seguida, o bolo converterá os links corretamente em www.example.com/main
Mas se seus links são
<?php echo $this->Html->link('your link', '/nodes/main/');?>
Eles apontarão para www.example.com/nodes/main