jmw
(Jmwierzbicki)
1
Hello, i have issue with urlManager in Yii2 - I defined something like this:
'<lang:\w+>/<controller:\w+>/<id:\d+>' => '<controller>/view',
'<lang:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<lang:\w+>/<controller:\w+>/<action:\w+>' => '<controller>/<action>',
and when i access site like example.com/en/site/index - it render page correctly, but links generated like
echo \Yii::$app->urlManager->createUrl(['site/gallery']);
route to example.com/site/gallery - how to fix it?
rahif
(Rahif)
2
create a file in app/components/UrlManager.php like this:
namespace app\components;
class UrlManager extends \yii\web\UrlManager {
public function createUrl($params = []) {
if (!isset($params['lg'])) {
$language = isset($_GET['lg']) ? $_GET['lg'] : \Yii::$app->language;
if (is_string($params)) {
$params = [$params,'lg' => $language];
} else {
$params['lg'] = $language;
}
}
return parent::createUrl($params);
}
}
change lg for your atribute lang.
and in config where you have rules:
'urlManager' => [
'class'=>'app\components\UrlManager',
'rules'=>
....