* Remove a tag from all user entries.
*
* We need to loop on each entry attached to the given tag to remove it, since Doctrine doesn't know EntryTag entity because it's a ManyToMany relation.
- * It could be faster with one query but I don't know how to retrieve the table name `entry_tag` which can have a prefix.
+ * It could be faster with one query but I don't know how to retrieve the table name `entry_tag` which can have a prefix:
+ *
+ * DELETE et FROM entry_tag et WHERE et.entry_id IN ( SELECT e.id FROM entry e WHERE e.user_id = :userId ) AND et.tag_id = :tagId
*
* @param int $userId
* @param Tag $tag
}
$this->getEntityManager()->flush();
-
- // An other solution can be to use raw query but I can't find a way to retrieve the `entry_tag` table name since it can be prefixed....
- // $sql = 'DELETE et FROM entry_tag et WHERE et.entry_id IN ( SELECT e.id FROM entry e WHERE e.user_id = :userId ) AND et.tag_id = :tagId';
- // $stmt = $this->getEntityManager()->getConnection()->prepare($sql);
- // $stmt->execute([
- // 'userId' => $userId,
- // 'tagId' => $tag->getId(),
- // ]);
}
/**