public static function getLanguage() { if (!($language = Language::findOne(['code' => Yii::$app->language, 'is_active' => 1]))) { if (!($language = Language::findOne(['is_default' => 1, 'is_active' => 1]))) { $language = new Language(); } } return $language; }
public function createUrl($params) { if (isset($params['lang_id'])) { //Если указан идентификатор языка, то делаем попытку найти язык в БД, //иначе работаем с языком по умолчанию $lang = Language::findOne($params['lang_id']); if ($lang === null) { $lang = Language::getDefaultLang(); } unset($params['lang_id']); } else { //Если не указан параметр языка, то работаем с текущим языком $lang = Language::getCurrent(); } //Получаем сформированный URL(без префикса идентификатора языка) $url = parent::createUrl($params); //Добавляем к URL префикс - буквенный идентификатор языка if ($url == '/') { return '/' . $lang->url_key; } else { return '/' . $lang->url_key . $url; } }
/** * Finds the Language model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Language the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Language::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }