/** * {@inheritdoc} */ public function load(ObjectManager $manager) { $now = time(); $tag = new Tag(); $tag->setName('Tag' . $now); $manager->persist($tag); $manager->flush(); self::$tags[] = $tag; }
/** * @param Photo $photo * @param array $tagsArray */ public function updateTags(Photo &$photo, array $tagsArray = []) { /** @var \Doctrine\ORM\EntityRepository $repository */ $repository = $this->entityManager->getRepository('ApiBundle:Tag'); /** @var Tag[] $tagsEntities */ $tagsEntities = $repository->createQueryBuilder('t')->where('t.name IN (:tags)')->setParameter('tags', $tagsArray)->getQuery()->execute(); foreach ($tagsEntities as $tagEntity) { $photo->addTag($tagEntity); $keyOnArray = array_search($tagEntity->getName(), $tagsArray); unset($tagsArray[$keyOnArray]); } foreach ($tagsArray as $tag) { $newTag = new Tag(); $newTag->setName($tag); $photo->addTag($newTag); $this->entityManager->persist($newTag); } }