/** * @return CmsSite */ public function getSite() { if ($this->_site === null) { if (\Yii::$app instanceof \yii\console\Application) { $this->_site = CmsSite::find()->active()->andWhere(['def' => Cms::BOOL_Y])->one(); } else { $this->_serverName = \Yii::$app->getRequest()->getServerName(); try { $dependencySiteDomain = new TagDependency(['tags' => [(new CmsSiteDomain())->getTableCacheTag()]]); $cmsDomain = CmsSiteDomain::getDb()->cache(function ($db) { return CmsSiteDomain::find()->where(['domain' => $this->_serverName])->one(); }, null, $dependencySiteDomain); /** * @var CmsSiteDomain $cmsDomain */ if ($cmsDomain) { $this->_site = $cmsDomain->cmsSite; } else { $this->_site = CmsSiteDomain::getDb()->cache(function ($db) { return CmsSite::find()->active()->andWhere(['def' => Cms::BOOL_Y])->one(); }, null, new TagDependency(['tags' => [(new CmsSite())->getTableCacheTag()]])); } } catch (Exception $e) { if (in_array($e->getCode(), NotConnectedToDbException::$invalidConnectionCodes)) { throw new NotConnectedToDbException(); } } } } return $this->_site; }
public function init() { $this->name = "Управление доменами"; $this->modelShowAttribute = "domain"; $this->modelClassName = CmsSiteDomain::className(); parent::init(); }
/** * @return CmsSite */ public function getSite() { if ($this->_site === null) { if (\Yii::$app instanceof \yii\console\Application) { $this->_site = CmsSite::find()->active()->andWhere(['def' => Cms::BOOL_Y])->one(); } else { $this->_serverName = \Yii::$app->getRequest()->getServerName(); $dependencySiteDomain = new TagDependency(['tags' => [(new CmsSiteDomain())->getTableCacheTag()]]); $cmsDomain = CmsSiteDomain::getDb()->cache(function ($db) { return CmsSiteDomain::find()->where(['domain' => $this->_serverName])->one(); }, null, $dependencySiteDomain); /** * @var CmsSiteDomain $cmsDomain */ if ($cmsDomain) { $this->_site = $cmsDomain->cmsSite; } else { $this->_site = CmsSiteDomain::getDb()->cache(function ($db) { return CmsSite::find()->active()->andWhere(['def' => Cms::BOOL_Y])->one(); }, null, new TagDependency(['tags' => [(new CmsSite())->getTableCacheTag()]])); } } } return $this->_site; }
/** * @return \yii\db\ActiveQuery */ public function getCmsSiteDomains() { return $this->hasMany(CmsSiteDomain::className(), ['site_code' => 'code']); }