Symfony2: использование приборов Doctrine2 на многоязычном веб-сайте - PullRequest
2 голосов
/ 14 февраля 2012

У меня есть многоязычный веб-сайт с 2 языками: en (по умолчанию) и de (немецкий).

Я хочу заполнить таблицу категорий категориями по умолчанию на английском языке, используя Doctrine Fixtures, например:

    $subcategory1 = new Category();
    $subcategory1->setTitle('Comedy');
    $subcategory1->setParent($category);
    $subcategory2 = new Category();
    $subcategory2->setTitle('Action');
    $manager->persist($subcategory1);
    $manager->persist($subcategory2);
    $manager->flush();

Я использую расширение Doctrine translatable, чтобы содержимое таблицы также было на немецком языке.Если мне нужно сделать это вручную, я должен сделать это в symfony:

    $em = $this->getDoctrine()->getEntityManager();
    $category = $em->find('Tracker\MembersBundle\Entity\Category', 51 );
    $category->setTitle('Komödie');
    $category->setTranslatableLocale('de'); // change locale
    $em->persist($category);
    $em->flush();

Мой вопрос: как мне автоматизировать этот процесс, чтобы он работал при загрузке приборов?У меня около 30 категорий.

1 Ответ

0 голосов
/ 19 марта 2012

Попробуйте этот метод:

$subcategory1 = new Category();
$subcategory1->setTitle('Comedy');
$subcategory1->setParent($category);
$subcategory2 = new Category();
$subcategory2->setTitle('Action');

$manager->persist($subcategory1);
$manager->persist($subcategory2);
$manager->flush();

$subcategory1->setTranslatableLocale('de_DE');
$subcategory1->setTitle('ComedyDE');
$subcategorys->setTranslatableLocale('de_DE');
$subcategory2->setTitle('ActionDE');
$manager->flush();
...