/** * Remove relation between Tag and a model given * @param Taggable $model * @param bool $onlyDeleteRelation */ public function deleteTagRelation(Taggable $model, $onlyDeleteRelation = false) { if ($onlyDeleteRelation) { $model->setRemove(true); } $tagRelationList = $this->em->createQueryBuilder()->select('t')->from($this->tagRelation, 't')->where('t.model = :type')->setParameter('type', $model->getModel())->andWhere('t.modelId = :id')->setParameter('id', $model->getModelId())->getQuery()->getResult(); foreach ($tagRelationList as $relation) { $this->em->remove($relation); $this->useless($relation->getTag()->getId()); } $this->em->flush(); }