public function rules() { return [ // ... ['status', 'validateStatus'] ]; } public function validateStatus() { if ($this->isAttributeChanged('status', false)) { if ($this->status == self::STATUS_DELETED && $this->getOldAttribute('status') != self::STATUS_DRAFT) { $this->addError('status', Yii::t('project', 'You can only delete a project from a draft.')); } if ($this->getOldAttribute('status') == self::STATUS_DELETED) { $this->addError('status', Yii::t('project', 'You can not restore a deleted project.')); } } }