webplus
Новичок
Здравствуйте!
В Yii2 не срабатывает в классе LangUrlManager переопределение переменной Yii::$app->language
вот код:
В урлы язык подставляется, но если вывести в контроллере переменную Yii::$app->language - то она не изменилась. Также из за этого messages не переключаются на нужный язык
В Yii2 не срабатывает в классе LangUrlManager переопределение переменной Yii::$app->language
вот код:
PHP:
namespace app\components\urlManager;
use yii\web\UrlManager;
use Yii;
class LangUrlManager extends UrlManager{
public $languages=array('en','ru');
public $lang='ru';
public $langParam='language';
public function createUrl($params=array()){
$userLang=Yii::$app->getRequest()->getPreferredLanguage();
//if language pass via url use it
if(isset($_GET[$this->langParam])&&in_array($_GET[$this->langParam],$this->languages)){
Yii::$app->language=$_GET[$this->langParam];
//else if preffered language is allowed
}elseif(in_array($userLang,$this->languages)) {
Yii::$app->language=$userLang;
//else use the first language from the list
}else Yii::$app->language=$this->lang;
//print_r($_GET);
if(!isset($params[$this->langParam])){ if(Yii::$app->language != $this->lang)$params[$this->langParam]=Yii::$app->language;}
else if($params[$this->langParam] == $this->lang)unset($params[$this->langParam]);
//print_r($params);
return parent::createUrl($params);
}
}