0

TranslatableListener の $defaultLocale に固執しました。

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

Symphony のセットアップの可能性しか見つかりませんでしたが、Zend Framework 2 のセットアップは見つかりませんでした。

「StofDoctrineExtensionsBundle」という名前のDoctrineExtensionsを簡単にセットアップするためのdoctrineの拡張バンドルがありますが、ZF2のようなものは見つかりませんでした。

次のリンクは、翻訳可能およびその他の DoctrineExtensions をセットアップするためのベスト プラクティスを示していますが、どこに配置すればよいですか? また、より簡単な方法はありませんか?

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

ZF2 環境で TranslatableListener の $defaultLocale を構成する方法を知りたいだけです。

アップデート:

ブートストラップで次のことを試しました:

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

しかし、まだ得ています:

.../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/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"
4

2 に答える 2

1

私の間違いは、TranslatableListener を 2 回構成したことです。

私のドクトリン構成では(説明のためだけに前にコメントがあり、行全体を削除してください):

'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);

Translatable Doctrine Extension のために Zend Framework 2 で DefaultLocale と TranslatableLocale を設定したい場合は、ブートストラップでそれを行い、doctrine 設定で 2 回追加しないでください。

于 2015-02-09T16:08:56.950 に答える
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

于 2017-03-17T13:48:30.503 に答える