/** * @param Schema $schema */ public function up(Schema $schema) { $rep = $this->em->getRepository('Gedmo\\Translatable\\Entity\\Translation'); foreach ($this->genres as $en => $ru) { $genre = new Genre(); $genre->setName($en)->setTranslatableLocale('en'); $this->em->persist($genre); $this->em->flush($genre); $rep->translate($genre, 'name', 'ru', $ru); } $this->em->flush(); }
/** * @param Schema $schema */ public function down(Schema $schema) { $rep = $this->em->getRepository('AnimeDbCatalogBundle:Genre'); /* @var $genre Genre */ foreach ($this->restore as $from => $to) { $genre = $rep->findOneBy(['name' => $from]); if (is_array($to)) { $genre->setName($to[1])->setTranslatableLocale('ru'); $this->em->persist($genre); $this->em->flush($genre); $to = $to[0]; } $genre->setName($to)->setTranslatableLocale('en'); $this->em->persist($genre); } // new genre $genre = new Genre(); $genre->setName('Mystery play')->setTranslatableLocale('en'); $this->em->persist($genre); $this->em->flush(); $genre->setName('Мистерия')->setTranslatableLocale('ru'); $this->em->persist($genre); // rename russian $genre = $rep->findOneBy(['name' => 'History']); $genre->setName('История')->setTranslatableLocale('ru'); $this->em->persist($genre); $genre = $rep->findOneBy(['name' => 'War']); $genre->setName('Война')->setTranslatableLocale('ru'); $this->em->persist($genre); $this->em->flush(); }