views:

172

answers:

1

How can I call a route (in the view) in CakePHP as the same way in Rails?

Ruby on Rails

routes.rb

map.my_route '/my-route', :controller => 'my_controller', :action => 'index'

view

link_to 'My Route Name', my_route_path

CakePHP

routes.php

Router::connect('/my-route', array('controller' => 'my_controller', 'action' => 'index'));

view

$html->link('My Route Name', '/my-route');

I think the Rails way is better, because I can make changes in the "url" and I don't need changes the code of all views.

+2  A: 

Use the array version in the view. CakePHP does reverse routing to determine the string link to use, i.e. '/my-route', from the array of controller / action / params in the array.

$html->link('My Route Name', array('controller' => 'my_controller', 'action' => 'index'));

Also check out this from Mark Gandolfo

neilcrookes