Autocomplete::className(), 'attributes' => [ 'translit' => ['code'], ] ] ]; } /** * @inheritdoc */ public function rules() { return [ [['sort', 'parent_id', 'active', 'comments', 'voting'], 'integer'], [['create_at', 'update_at'], 'safe'], [['code'], 'required'], [['code', 'tags'], 'string'] ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => Yii::t('app', 'ID'), 'sort' => Yii::t('app', 'Sort'), 'create_at' => Yii::t('app', 'Create At'), 'update_at' => Yii::t('app', 'Update At'), 'code' => Yii::t('app', 'Code'), 'author' => Yii::t('app', 'Author'), 'tags' => Yii::t('app', 'Tags'), 'parent_id' => Yii::t('app', 'Parent ID'), 'active' => Yii::t('app', 'Active'), 'comments' => Yii::t('app', 'Comments'), 'voting' => Yii::t('app', 'Voting'), ]; } /** * @return \yii\db\ActiveQuery */ public function getParent() { return $this->hasOne(Article::className(), ['id' => 'parent_id']); } /** * @return \yii\db\ActiveQuery */ public function getArticles() { return $this->hasMany(Article::className(), ['parent_id' => 'id']); } /** * @return \yii\db\ActiveQuery */ public function getAuthor0() { return $this->hasOne(User::className(), ['id' => 'author']); } /** * @return \yii\db\ActiveQuery */ public function getArticleLangs() { return $this->hasMany(ArticleLang::className(), ['article_id' => 'id']); } /** * @return \yii\db\ActiveQuery */ public function getArticleMedia() { return $this->hasMany(ArticleMedia::className(), ['article_id' => 'id']); } public function getMedia() { return $this->hasMany(Media::className(), ['id' => 'media_id'])->via('articleMedia'); } /** * @return \yii\db\ActiveQuery */ public function getArticleToCategories() { return $this->hasMany(ArticleToCategory::className(), ['article_id' => 'id']); } public function getArticleCategories() { return $this->hasMany(ArticleCategory::className(), ['id' => 'category_id'])->viaTable('article_to_category', ['article_id' => 'id']); } public static function findArticleDropdown($id) { $query = new Query(); return $query->select(['l.name', 'a.id']) ->from(['article a']) ->leftJoin(['article_lang l'], 'a.id = l.article_id') ->where(['l.lang_id' => 0, 'a.active' => 1]) ->andWhere(['not', ['a.id' => $id]]) ->indexBy('a.id') ->column(); } public function getArticleCategoriesArray() { return $this->getArticleToCategories()->select('category_id')->column(); } }