public function getById($id) { if (empty($id)) { return null; } return Language::findOne($id); }
public function createUrl($params) { if (isset($params['lang_id'])) { //Если указан идентификатор языка, то делаем попытку найти язык в БД, //иначе работаем с языком по умолчанию $lang = Language::findOne($params['lang_id']); if ($lang === null) { $lang = \Yii::$app->languageManager->getDefault(); } unset($params['lang_id']); } else { //Если не указан параметр языка, то работаем с текущим языком $lang = \Yii::$app->languageManager->getCurrent(); } //Получаем сформированный URL(без префикса идентификатора языка) $url = parent::createUrl($params); if ($lang->is_default) { return $url; } else { if ($url == '/') { return '/' . $lang->url; } elseif (preg_match('/^https?/si', $url)) { return preg_replace('#(^https?:\\/\\/[a-zA-Z0-9\\.]+)#', '$1/' . $lang->url, $url); } else { return '/' . $lang->url . $url; } } }