未定义的索引:translationClass - 仅“en”语言环境

时间:2014-03-13 19:47:47

标签: php symfony sonata-admin

我正在使用Symfony 2.3“a2lix / translation-form-b​​undle和sonataAdmin bundle

composer.json

"sonata-project/admin-bundle": "dev-master",
"sonata-project/doctrine-orm-admin-bundle": "dev-master",
"sonata-project/easy-extends-bundle": "dev-master",
"sonata-project/user-bundle": "dev-master",
"sonata-project/media-bundle": "2.2.*@dev",
"gedmo/doctrine-extensions": "2.3.*@dev",
"stof/doctrine-extensions-bundle": "~1.1@dev",
"a2lix/i18n-doctrine-bundle": "0.*@dev",
"a2lix/translation-form-bundle": "1.*@dev"

config.yml

framework:
    default_locale: sl
    translator:      { fallback: %locale% }
stof_doctrine_extensions:
    default_locale: %locale%
    orm:
        default:
            sluggable: true
            timestampable: true
            blameable:      ~
            translatable: true
            loggable:       ~
            softdeleteable: ~
            uploadable:     ~

a2lix_i18n_doctrine:
    manager_registry: doctrine

a2lix_translation_form:
    locales: [sl, sr, de, hr, hu]
    default_required: true
    manager_registry: doctrine
    templating: "A2lixTranslationFormBundle::default.html.twig"

使用此配置,我可以在sonata管理员中显示带有locales sl,sr,de,hr和hu的表单。数据也成功存储在数据库中。这是一个棘手的方法。如果我将“en”语言环境添加到语言环境 - locales:[en,sl,sr,de,hr,hu],那么表单会抛出一个错误:

ContextErrorException: Notice: Undefined index: translationClass in /home/john/symfony/vendor/a2lix/translation-form-bundle/A2lix/TranslationFormBundle/TranslationForm/GedmoTranslationForm.php line 57

仅当我添加en locale时才会发生这种情况。任何其他语言环境都可以。我不知道出了什么问题。有什么提示吗?

修改

我认为你错了,但这会导致另一个问题。如果我在a2lix_translation_form中添加语言环境,如[en,sr,de,hr,hu](用en更改sl),那么它可以工作。我认为这是因为我的默认语言环境是sl。我的表单映射器现在看起来像:

$formMapper
            ->add("name")
            ->add("description")
            ->add("starttime")
            ->add('translations', 'a2lix_translations_gedmo', array(   // Use the old gedmo strategy
                'translatable_class' => 'repincln\CoreBundle\Entity\ProfileTranslation', 
        ));

Sonata Admin

这里开始出现问题。如果我填写所有字段,那么在locale sl中存储英文翻译。 sl翻译不存储在任何地方。我想前两个字段(不在翻译标签中)是sl语言环境(因为在config.yml中是default_locale:sl)。

对此有任何解释吗?

1 个答案:

答案 0 :(得分:0)