creocoder\taggable\TaggableBehavior::beforeDelete PHP Method

beforeDelete() public method

public beforeDelete ( ) : void
return void
    public function beforeDelete()
    {
        $tagRelation = $this->owner->getRelation($this->tagRelation);
        $pivot = $tagRelation->via->from[0];
        if ($this->tagFrequencyAttribute !== false) {
            /* @var ActiveRecord $class */
            $class = $tagRelation->modelClass;
            $pks = (new Query())->select(current($tagRelation->link))->from($pivot)->where([key($tagRelation->via->link) => $this->owner->getPrimaryKey()])->column($this->owner->getDb());
            if (!empty($pks)) {
                $class::updateAllCounters([$this->tagFrequencyAttribute => -1], ['in', $class::primaryKey(), $pks]);
            }
        }
        $this->owner->getDb()->createCommand()->delete($pivot, [key($tagRelation->via->link) => $this->owner->getPrimaryKey()])->execute();
    }