Hi,
I have a problem on multiple language URL routing
How to convert
localhost/testimonialDetails/pinturas-mataavenida/language/en
to
localhost/en/testimonialDetails/pinturas-mataavenida
problem is that when any "-" inside URL slug the createUrl() function not able to route this. is this problem on my code
i just call
<?= $this->createUrl("testimonialDetails/$testimonials->url") ?>
localhost/testimonialDetails/pinturas-mataavenida/language/en
if i replace "-" with "_" (underscore)
localhost/en/testimonialDetails/pinturas_mataavenida
then it working fine
my codding is
Override createUrl function
[b]
class UrlManager extends CUrlManager {
public function createUrl ($route, $params = array(), $ampersand = '&') {
if (!isset($params['language'])) {
if (Yii::app()->user->hasState('language'))
Yii::app()->language = Yii::app()->user->getState('language');
else if (isset(Yii::app()->request->cookies['language']))
Yii::app()->language = Yii::app()->request->cookies['language']->value;
$params['language'] = Yii::app()->language;
}
return parent::createUrl($route, $params, $ampersand);
}
}[/b]
This is my urlManager Rule
‘<language:(es|da|en)>/testimonialDetails/<url:[\w-]+>’ => ‘testimonials/details’,
'<language:(es|da|en)>/<action:(contact)>/*' => 'site/<action>',
'<language:(es|da|en)>/<controller:\w+>' => '<controller>',
'<language:(es|da|en)>/<controller:\w+>/<id:\d+>' => '<controller>/view',
'<language:(es|da|en)>/<module:\w+>/<controller:(admin|profileField)>/<id:\d+>' => '<module>/<controller>/view',
'<language:(es|da|en)>/<module:\w+>/<controller:(admin|profileField)>/<action:\w+>/<id:\d+>' => '<module>/<controller>/<action>',
'<language:(es|da|en)>/<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>',
'<language:(es|da|en)>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<language:(es|da|en)>/<controller:\w+>/<action:\w+>/*' => '<controller>/<action>',
Did i miss something . Please help ,
sorry For my bad english
thanx in advance.