Пример #1
0
 /**
  * Test translation setters getters
  */
 public function testTranslation()
 {
     $requestStatus = new RequestStatus();
     $this->assertInstanceOf('Doctrine\\Common\\Collections\\ArrayCollection', $requestStatus->getTranslations());
     $this->assertCount(0, $requestStatus->getTranslations());
     $translation = new RequestStatusTranslation();
     $requestStatus->addTranslation($translation);
     $this->assertCount(1, $requestStatus->getTranslations());
     $requestStatus->addTranslation($translation);
     $this->assertCount(1, $requestStatus->getTranslations());
     $requestStatus->addTranslation(new RequestStatusTranslation());
     $this->assertCount(2, $requestStatus->getTranslations());
     $translation = new RequestStatusTranslation();
     $translation->setLocale('en_US')->setField('type');
     $translations = new ArrayCollection([$translation]);
     $requestStatus->setTranslations($translations);
     $this->assertCount(1, $requestStatus->getTranslations());
 }
 /**
  * {@inheritdoc}
  */
 public function loadEntities(ObjectManager $objectManager)
 {
     $localeSettings = $this->container->get('oro_locale.settings');
     $defaultLocale = $localeSettings->getLocale();
     $locales = $this->getTranslationLocales();
     if (!in_array($defaultLocale, $locales, true)) {
         throw new \LogicException('There are no default locale in translations!');
     }
     foreach ($this->items as $item) {
         $status = new RequestStatus();
         $status->setSortOrder($item['order']);
         $status->setName($item['name']);
         foreach ($locales as $locale) {
             $label = $this->translate($item['name'], static::PREFIX, $locale);
             if ($locale == $defaultLocale) {
                 $status->setLabel($label)->setLocale($locale);
             } else {
                 $status->addTranslation((new RequestStatusTranslation())->setLocale($locale)->setField('label')->setContent($label));
             }
         }
         $objectManager->persist($status);
     }
     $objectManager->flush();
 }