/** * @param ActiveRecord $object * * @return string */ public static function niceUrlTo(ActiveRecord $object) { /** @var Language $language */ $language = Language::findOne(['symbol' => \Yii::$app->language]); /** @var NiceUrl $niceUrl */ $niceUrl = NiceUrl::findOne(['object_class' => get_class($object), 'object_id' => $object->id, 'language_id' => $language->id, 'redirect' => 0]); return sprintf('%s', $niceUrl->url); }
/** * process nice url for request */ public static function process() { $request = \Yii::$app->getRequest(); /** @var Language $language */ $language = Language::findOne(['symbol' => \Yii::$app->language]); $niceUrlProcessor = new RequestProcessor($language, new Finder()); list($route, $params) = $niceUrlProcessor->processRequest($request); $routes = array_merge([$route], $params); \Yii::$app->catchAll = $routes; }
/** * @return Language|null */ public static function getDefault() { return Language::findOne(['default' => true]); }