Symfony2:在多语言网站中使用Doctrine2灯具

时间:2012-02-14 14:20:12

标签: symfony doctrine-orm translation fixtures

我有一个多语种网站,有两种语言: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 :(得分:0)

试试这个方法:

$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();