Domanda

Sto cercando di implementare il routing in CakePHP. Voglio gli URL per mappati come questo ...

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

Quindi, per questo ho scritto nel mio file / routes.php config ..

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

Ora, ho preso la cosa andare ma quando clicco sul link, l'URL in del browser appare come www.example.com/nodes/main www.example.com/nodes/about

C'è un modo dove posso trovare gli URL di apparire il modo in cui vengono instradati? Impostazione in .htaccess o httpd.conf sarebbe stato facile -. Ma non ho accesso a quel

Saluti Vikram

È stato utile?

Soluzione

Questo dovrebbe funzionare:

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

Si può anche fare qualcosa di più potente, in questo modo:

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

Altri suggerimenti

In sostanza, se il vostro link sono creati con il linguaggio HTML helper, con il seguente formato:

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

Poi la torta convertirà i link correttamente per www.example.com/main

Ma se i vostri collegamenti sono

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

che punterà alla www.example.com/nodes/main

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top