2015-02-08 51 views
0

我坚持使用TranslatableListener的$ defaultLocale。ZF2中可翻译的DoctrineExtensions - 如何以及在哪里可以设置DefaultDeocLI

https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/translatable.md#default-locale

我发现只有针对交响乐团设置的可能性,但不为Zend框架2.

没有为教义名为“StofDoctrineExtensionsBundle” DoctrineExtensions的易于安装的扩展束,但我没有发现类似ZF2的东西。

以下链接显示了设置可翻译和其他DoctrineExtensions的最佳实践,但我应该在哪里放置它并且没有更简单的方法?

https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/annotations.md#best-practices-for-setting-up-with-annotations

我只是想知道我怎么可以配置TranslatableListener的$ defaultLocale在ZF2环境。

UPDATE:

我想在我的引导下:

$translatableListener = new TranslatableListener(); 
$translatableListener->setDefaultLocale('de-DE'); 
$doctrineEventManager->addEventSubscriber($translatableListener); 

但仍然得到:

... /供应商/ gedmo /学说的扩展/ lib目录/ Gedmo /可转换/TranslatableListener.php:464 Gedmo \ Translatable \ Mapping \ Event \ Adapter \ ORM-> loadTranslations

$object Rental\Entity\Rental 
$translationClass "Rental\Entity\RentalTranslation" 
$locale "en_US" 
$objectClass "Rental\Entity\Rental" 

回答

1

所以我的错误是,我配置了TranslatableListener两次。

在我的教训配置(仅适用于解释有再发表评论,删除整行):

'doctrine' => [  
    'eventmanager'    => [ 
     'orm_default' => [ 
      'subscribers' => [ 
       'Gedmo\Timestampable\TimestampableListener', 
       'Gedmo\Sluggable\SluggableListener', 
       // 'Gedmo\Translatable\TranslatableListener', 
      ], 
     ], 
    ], 

和引导:

// sets the default locale and the actual locale 
$translatableListener = new TranslatableListener(); 
$translatableListener->setDefaultLocale('de-DE'); 
$translatableListener->setTranslatableLocale(\Locale::getDefault()); 
$doctrineEventManager->addEventSubscriber($translatableListener); 

如果你想设置的DefaultLocale和Zend Framework 2中的TranslatableLocale用于可翻译的Doctrine扩展,比在引导中更好,并且不要在Doctrine配置中第二次添加它。

0

如果你想保留:

'doctrine' => [  
'eventmanager'    => [ 
    'orm_default' => [ 
     'subscribers' => [ 
      'Gedmo\Timestampable\TimestampableListener', 
      'Gedmo\Sluggable\SluggableListener', 
      // the line below because in future you might need it 
      'Gedmo\Translatable\TranslatableListener', 
     ], 
    ], 
], 

试试这个: https://stackoverflow.com/a/42859119/3661592

相关问题