Autocomplete::className(), 'attributes' => [ 'translit' => ['code'], ] ] ]; } /** * @inheritdoc */ public function rules() { return [ [['active', 'sort', 'parent_id'], 'integer'], [['code'], 'required'], [['code', 'tags'], 'string'], [['created_at', 'updated_at'], 'safe'], [['active'], 'boolean'], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => Yii::t('app', 'ID'), 'active' => Yii::t('app', 'Active'), 'sort' => Yii::t('app', 'Sort'), 'code' => Yii::t('app', 'Code'), 'created_at' => Yii::t('app', 'Created At'), 'updated_at' => Yii::t('app', 'Updated At'), 'tags' => Yii::t('app', 'Tags'), 'parent_id' => Yii::t('app', 'Parent ID'), ]; } /** * @return \yii\db\ActiveQuery */ public function getArticles() { return $this->hasMany(Article::className(), ['category_id' => 'id']); } /** * @return \yii\db\ActiveQuery */ public function getParent() { return $this->hasOne(ArticleCategory::className(), ['id' => 'parent_id']); } /** * @return \yii\db\ActiveQuery */ public function getArticleCategories() { return $this->hasMany(ArticleCategory::className(), ['parent_id' => 'id']); } /** * @return \yii\db\ActiveQuery */ public function getArticleCategoryLangs() { return $this->hasMany(ArticleCategoryLang::className(), ['category_id' => 'id']); } /** * @return \yii\db\ActiveQuery */ public function getArticleCategoryMedia() { return $this->hasMany(ArticleCategoryMedia::className(), ['category_id' => 'id']); } public static function findArticleCategoryDropdown($id) { $query = new Query(); return $query->select(['l.name', 'c.id']) ->from(['article_category c']) ->leftJoin(['article_category_lang l'], 'c.id = l.category_id') ->where(['l.lang_id' => 0, 'c.active' => 1]) ->andWhere(['not', ['c.id' => $id]]) ->indexBy('id') ->column(); } }