我正在使用Symfony 2.3“a2lix / translation-form-bundle和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',
));
这里开始出现问题。如果我填写所有字段,那么在locale sl中存储英文翻译。 sl翻译不存储在任何地方。我想前两个字段(不在翻译标签中)是sl语言环境(因为在config.yml中是default_locale:sl)。
对此有任何解释吗?
答案 0 :(得分:0)