X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FRepository%2FEntryRepository.php;h=ca71970bcbaf9b83936da34a93bde1694c16824a;hb=dad1c546a521159ca65a5a7649651d37728f0e55;hp=e658a359ef216fe5ff3572395dbdb8cc4b0ab8c2;hpb=4059a061c0c8cc787f71e96aef2ab01599d3241d;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php index e658a359..ca71970b 100644 --- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php +++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php @@ -185,7 +185,9 @@ class EntryRepository extends EntityRepository * 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 @@ -203,14 +205,6 @@ class EntryRepository extends EntityRepository } $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(), - // ]); } /**