I'm using the following code in my AppHelper.php to inject the language parameter into links created with the HtmlHelper
public function url($url = null, $full = false) {
if(!isset($url['language']) && isset($this->params['language'])) {
$url['language'] = $this->params['language'];
}
return parent::url($url, $full);
}
It's working fine but when I go to the index action the url becomes something.com/some_controller/index
if I don't override the url method then the url is just something.com/some_controller
These are my routes
Router::connect('/:language/:controller/:action/*',
array(),
array('language' => 'eng|fra'));
Router::connect('/:language/:controller',
array('action' => 'index'),
array('language' => 'eng|fra'));
Router::connect('/:language',
array('controller' => 'pages', 'action' => 'display'),
array('language' => 'eng|fra'));
I'm calling the link method like this
$this->Html->link(__('Users'), array('controller'=>'users', 'action'=>'index'))';
and I tried it without the action parameter
$this->Html->link(__('Users'), array('controller'=>'users'))';
without the action parameter but it adds the current action if I am on a page managed by the same controller
how can I make it so that the name of the action doesn't become part of the url if it is the index action?