예제 #1
0
 /**
  * {@inheritdoc}
  */
 public function setTagGroups(ISystemTag $tag, $groupIds)
 {
     // delete relationships first
     $this->connection->beginTransaction();
     try {
         $query = $this->connection->getQueryBuilder();
         $query->delete(self::TAG_GROUP_TABLE)->where($query->expr()->eq('systemtagid', $query->createNamedParameter($tag->getId())))->execute();
         // add each group id
         $query = $this->connection->getQueryBuilder();
         $query->insert(self::TAG_GROUP_TABLE)->values(['systemtagid' => $query->createNamedParameter($tag->getId()), 'gid' => $query->createParameter('gid')]);
         foreach ($groupIds as $groupId) {
             $query->setParameter('gid', $groupId);
             $query->execute();
         }
         $this->connection->commit();
     } catch (\Exception $e) {
         $this->connection->rollback();
         throw $e;
     }
 }