Я застрял с $ defaultLocale TranslatableListener.
https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/translatable.md#default-locale
Я нашел только возможности настройки для Symphony, но не для Zend Framework 2.
Существует пакет расширений для doctrine для простой настройки DoctrineExtensions с именем «StofDoctrineExtensionsBundle», но я не нашел ничего подобного для ZF2.
Следующая ссылка показывает рекомендации по настройке переводимых и других DoctrineExtensions, но где я должен их разместить, и нет ли более легкого подхода?
Я только хочу знать, как я могу настроить $ defaultLocale TranslatableListener в среде ZF2.
ОБНОВИТЬ:
Я попробовал в моей начальной загрузке следующее:
$translatableListener = new TranslatableListener();
$translatableListener->setDefaultLocale('de-DE');
$doctrineEventManager->addEventSubscriber($translatableListener);
Но все же получаю:
…/vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/TranslatableListener.php:464 Gedmo \ Transurable \ Mapping \ Event \ Adapter \ ORM-> loadTranslations
$object Rental\Entity\Rental
$translationClass "Rental\Entity\RentalTranslation"$locale "en_US"$objectClass "Rental\Entity\Rental"
Поэтому моя ошибка заключалась в том, что я дважды настраивал 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 и TranslatableLocale в Zend Framework 2 для расширения Transurable Doctrine, то сделайте это в начальной загрузке и не добавьте его второй раз в конфигурации доктрины.
Если вы хотите сохранить:
'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