public function beforeDelete() { $pks = []; foreach ($this->owner->tags as $tag) { $pks[] = $tag->primaryKey; } if (count($pks)) { Tag::updateAllCounters(['frequency' => -1], ['in', 'tag_id', $pks]); } Tag::deleteAll(['frequency' => 0]); TagIndex::deleteAll(['entity' => $this->getEntityClass(), 'entity_id' => $this->getEntityId()]); }